我要執行 Sybase Sql 如何用?? |
答題得分者是:hagar
|
elvis114
一般會員 發表:37 回覆:53 積分:18 註冊:2003-06-17 發送簡訊給我 |
Delphi 6 如下:
------------------------------------------------------------------
try
ADOConnection1.LoginPrompt := FALSE; if ADOConnection1.Connected = false then
ADOConnection1.Open;
ADOquery1.Connection:= ADOConnection1;
except
showmessage('無法正常連線,請查明原狀況!!');
close;
exit;
end;
ADOquery1.SQL.Clear;
ADOquery1.SQL.Text :=
'select l.spid, locktype=v1.name,'+
'tablename=convert(char(15),object_name(l.id)),'+
'convert(char(15),l.class),USERname=v3.hostname,'+
'v3.status,v3.cmd'+
'from master..syslocks l,'+
'master..spt_values v1,'+
'master..spt_values v2,'+
'master..sysprocesses v3'+
'where l.type = v1.number'+
'and v1.type = "L"'+
'and (l.context+2048) = v2.number'+
'and v2.type = "L2"'+
'and v3.spid = l.spid'+
'and l.dbid=db_id("future")'+
'order by l.spid';
try
ADOquery1.Open;
for i :=0 to ADOquery1.RecordCount -1 do
begin Memo1.Text := ADOquery1.FieldByName('spid').asstring+ ' '+
ADOquery1.FieldByName('locktype').asstring+ ' '+
ADOquery1.FieldByName('tablename').asstring+ ' '+
///ADOquery1.FieldByName(' ').asstring+ ' '+
ADOquery1.FieldByName('USERname').asstring+
ADOquery1.FieldByName('status').asstring+
ADOquery1.FieldByName('cmd').asstring+
#13#10;
ADOquery1.Next;
end;
ADOquery1.Close;
except On E:Exception do
begin
showmessage(E.Message);
Memo1.Text := E.Message ;
Exit;
end;
end;
--------------------------------------------------------------------
Error Message 如下:
[INTERSOLV][ODBC SQL Server driver][SQL Server]Incorrect syntax near '.'
我要如何修改呢?? =======================
謝謝各位大德不吝賜教!!
小弟感激不進
=======================
------
願 南無藥師琉璃光如來 保佑您 |
Fishman
尊榮會員 發表:120 回覆:1949 積分:2163 註冊:2006-10-28 發送簡訊給我 |
Hi elvis114, 試試 master..spt_values --> master.spt_values
ADOquery1.SQL.Text := 'select l.spid, locktype=v1.name,' 'tablename=convert(char(15),object_name(l.id)),' 'convert(char(15),l.class),USERname=v3.hostname,' 'v3.status,v3.cmd' 'from master.syslocks l,' 'master.spt_values v1,' 'master.spt_values v2,' 'master.sysprocesses v3' 'where l.type = v1.number' 'and v1.type = "L"' 'and (l.context 2048) = v2.number' 'and v2.type = "L2"' 'and v3.spid = l.spid' 'and l.dbid=db_id("future")' 'order by l.spid';---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman |
elvis114
一般會員 發表:37 回覆:53 積分:18 註冊:2003-06-17 發送簡訊給我 |
ADOquery1.SQL.Text :=
'select l.spid, locktype=v1.name,'+
'tablename=convert(char(15),object_name(l.id)),'+
'convert(char(15),l.class),USERname=v3.hostname,'+
'v3.status,v3.cmd'+
'from master.syslocks l,'+
'master.spt_values v1,'+
'master.spt_values v2,'+
'master.sysprocesses v3'+
'where l.type = v1.number'+
'and v1.type = "L"'+
'and (l.context+2048) = v2.number'+
'and v2.type = "L2"'+
'and v3.spid = l.spid'+
'and l.dbid=db_id("future")'+
'order by l.spid'; 還是有一樣的 Error : [INTERSOLV][ODBC SQL Server driver][SQL Server]Incorrect syntax near '.' =======================
謝謝各位大德不吝賜教!!
小弟感激不進
=======================
------
願 南無藥師琉璃光如來 保佑您 |
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
不知是不是沒空格的關係?
ADOquery1.SQL.Text := 'select l.spid, locktype=v1.name,' 'tablename=convert(char(15),object_name(l.id)),' 'convert(char(15),l.class),USERname=v3.hostname,' 'v3.status,v3.cmd' 'from master.syslocks l,' 'master.spt_values v1,' 'master.spt_values v2,' 'master.sysprocesses v3' 'where l.type = v1.number' // where 跟之前的 v3 之間沒空格 'and v1.type = "L"' // and 跟之前的 v1.number 間沒空格 'and (l.context 2048) = v2.number' // and 跟之前的 v1.type 間沒空格 'and v2.type = "L2"' // and 跟之前的 v2.number 間沒空格 'and v3.spid = l.spid' // and 跟之前的 L2 間沒空格 'and l.dbid=db_id("future")' // and 跟之前的 l.spid 間沒空格 'order by l.spid'; // order 跟之前的 ("future") 間沒空格發表人 - hagar 於 2004/06/16 17:54:23 |
elvis114
一般會員 發表:37 回覆:53 積分:18 註冊:2003-06-17 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |