use DBI; use DBD::ODBC; $dbh->trace(2); my $dbh2 = DBI->connect('DBI:ODBC:'.$dbname, $dblogin, $dbpass) or die "[$dbname] " . DBI->errstr ; $sql = qq~ declare @intpos int declare @intuser int declare @dtlastpost varchar(30) set @intuser = (select userid from [$dbname].[dbo].[users] where [name] = '$user') set @intpos = (select top 1 permissionid from [$dbname].[dbo].[security] where [userid] = @intuser order by permissionid desc) set @dtlastpost = (SELECT top 1 [PostDate] FROM [$dbname].[dbo].[Messages] where userid = @intuser order by postdate desc ) SELECT rtrim([Password])/*$settings[0]*/, rtrim([FirstName]) + ' ' + rtrim([LastName])/*$settings[1]*/, [Email]/*$settings[2]*/,''/*$settings[3]*/, [HomePage]/*$settings[4]*/, [Signature]/*$settings[5]*/, [MsgsPosted]/*$settings[6]*/, case when @intpos = 1 then 'Administrator' else '' end /*$settings[7]*/, '' /*$settings[8]*/,'' /*$settings[9]*/, '' /*$settings[10]*/, '' /*##'gender' => "$settings[11]"*/, '' /*##'usertext' => "$settings[12]"*/, '' /*##'userpic' => "$settings[13]"*/, case when datepart(mm,[FirstLogin]) < 10 then '0'+cast(datepart(mm,[FirstLogin]) as char(1)) else cast(datepart(mm,[FirstLogin]) as char(2)) end +'/'+ case when datepart(dd,[FirstLogin]) < 10 then '0'+cast(datepart(dd,[FirstLogin]) as char(1)) else cast(datepart(dd,[FirstLogin]) as char(2)) end +'/'+ right(cast(datepart(yy,[FirstLogin]) as char(4)), 2) + ' at ' + case when datepart(hh,[FirstLogin]) < 10 then '0'+cast(datepart(hh,[FirstLogin]) as char(1)) else cast(datepart(hh,[FirstLogin]) as char(2)) end +':'+ case when datepart(mi,[FirstLogin]) < 10 then '0'+cast(datepart(mi,[FirstLogin]) as char(1)) else cast(datepart(mi,[FirstLogin]) as char(2)) end +':'+ case when datepart(ss,[FirstLogin]) < 10 then '0'+cast(datepart(ss,[FirstLogin]) as char(1)) else cast(datepart(ss,[FirstLogin]) as char(2)) end /* #'regdate' => "$settings[14]",*/ , rtrim([City]) + ',' + rtrim([State]) + ',' + rtrim([Country])/*#'location' => "$settings[15]"*/ , '' /* ##'bday' => "$settings[16]"*/, ''/* ##'timeselect' => "$settings[17]"*/, ''/* ##'timeoffset' => "$settings[18]"*/, [HideEmail] /*#'hidemail' => "$settings[19]"*/, ''/* ##'msn' => "$msnaddress"*/, '' /*##'gtalk' => "$settings[32]"*/, '' /*##'template' => "$new_template"*/, '' /*##'language' => "$language"*/, case when datepart(mm,[LastLogin]) < 10 then '0'+cast(datepart(mm,[LastLogin]) as char(1)) else cast(datepart(mm,[LastLogin]) as char(2)) end +'/'+ case when datepart(dd,[LastLogin]) < 10 then '0'+cast(datepart(dd,[LastLogin]) as char(1)) else cast(datepart(dd,[LastLogin]) as char(2)) end +'/'+ right(cast(datepart(yy,[LastLogin]) as char(4)), 2) + ' at ' + case when datepart(hh,[LastLogin]) < 10 then '0'+cast(datepart(hh,[LastLogin]) as char(1)) else cast(datepart(hh,[LastLogin]) as char(2)) end +':'+ case when datepart(mi,[LastLogin]) < 10 then '0'+cast(datepart(mi,[LastLogin]) as char(1)) else cast(datepart(mi,[LastLogin]) as char(2)) end +':'+ case when datepart(ss,[LastLogin]) < 10 then '0'+cast(datepart(ss,[LastLogin]) as char(1)) else cast(datepart(ss,[LastLogin]) as char(2)) end /* #'lastonline' => "$settings[23]"*/, @dtlastpost /* # 'lastpost' => "$settings[24]" */, ''/* ##'lastim' => "$settings[25]" */, ''/* ##'im_ignorelist' => "$settings[26]"*/, ''/* ##'im_notify' => "$settings[27]"*/, ''/* ##'im_popup' => "$settings[28]"*/, '' /*##'im_imspop' => "$settings[29]"*/, '' /*##'cathide' => "$settings[30]"*/, '' /*##'postlayout' => "$settings[31]"*/ FROM [$dbname].[dbo].[Users] u where [name] = '$user' ~; my $sth2 = $dbh2->prepare($sql) or die "Couldn't prepare statement: " . $dbh2->errstr; $sth2->execute() # Execute the query or die "Couldn't execute statement: " . $sth2->errstr; $dbh->trace(0); @settings = $sth2->fetchrow_array();