關于從Delphi傳送T-SQL語句給MSSQL SERVER 2000的問題 |
答題得分者是:Stallion
|
sfkai
一般會員 ![]() ![]() 發表:4 回覆:3 積分:1 註冊:2007-04-14 發送簡訊給我 |
小弟我在做一個查詢記錄的功能,以下是單擊查詢按鈕部分的代碼:
procedure TCX.select_buttonClick(Sender: TObject); var num,SQLcmd:string; begin num:=trim(numedit.Text); if num='' then begin ShowMessage('学号不能为空!'); numedit.SetFocus; exit; end; if length(num)>6 then begin showmessage('学号只能有6个0~9的数字'); exit; end; SQLcmd:='USE XSCJ' #13 #10; SQLcmd:=SQLcmd 'GO' #13 #10; SQLcmd:=SQLcmd 'select 学号,姓名,性别名,出生日期,专业名,总学分,备注 from XS,XBM' #13 #10; SQLcmd:=SQLcmd 'where XS.性别=XBM.性别 and 学号=' num #13 #10; SQLcmd:=SQLcmd 'GO #13 #10'; showmessage(SQLcmd); XSCJDM.XSCJADODataSet.CommandText:=SQLcmd; XSCJDM.XSCJADODataSet.Active:=True; end; 運行后測試老是提示'GO附近有錯誤',刪除紅色部分的代碼后測試通過。而直接運行EXE檔也是如此,請教各位高手這是為什么?謝謝! |
Stallion
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
ADO好像不是這樣用的吧?
你的錯誤是在SQL執行後,由SERVER傳回的錯誤訊息,至於移不移除紅色部分,都不會有影響,那些部分只是字串組合的運算而已。 ADO物件配合ADOConnection來連結資料庫作比較有彈性!順便看看ADOQuery,ADOCommand如何運用。 KTOP很多範例,查詢一下。 ![]() ===================引 用 sfkai 文 章=================== 小弟我在做一個查詢記錄的功能,以下是單擊查詢按鈕部分的代碼: procedure TCX.select_buttonClick(Sender: TObject); var num,SQLcmd:string; begin num:=trim(numedit.Text); if num='' then begin ShowMessage('学号不能为空!'); numedit.SetFocus; exit; end; if length(num)>6 then begin showmessage('学号只能有6个0~9的数字'); exit; end; SQLcmd:='USE XSCJ' #13 #10; SQLcmd:=SQLcmd 'GO' #13 #10; SQLcmd:=SQLcmd 'select 学号,姓名,性别名,出生日期,专业名,总学分,备注 from XS,XBM' #13 #10; SQLcmd:=SQLcmd 'where XS.性别=XBM.性别 and 学号=' num #13 #10; SQLcmd:=SQLcmd 'GO #13 #10'; showmessage(SQLcmd); XSCJDM.XSCJADODataSet.CommandText:=SQLcmd; XSCJDM.XSCJADODataSet.Active:=True; end; 運行后測試老是提示'GO附近有錯誤',刪除紅色部分的代碼后測試通過。而直接運行EXE檔也是如此,請教各位高手這是為什么?謝謝! |
sfkai
一般會員 ![]() ![]() 發表:4 回覆:3 積分:1 註冊:2007-04-14 發送簡訊給我 |
|
Stallion
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
有點看懂了~抱歉前面的回覆!
![]() 你的查詢是兩次,要分開來執行才對!如下試看看~ use XSCJ GO //這裡執行一次查詢 ------------------------------------------------------- select 学号,姓名,性别名,出生日期,专业名,总学分,备注 from XS,XBM where XS.性别=XBM.性别 and 学号='001101' //這裡執行一次查詢 ===================引 用 sfkai 文 章=================== 小弟已將ADOConnection放在數據模塊中。還有,運行后測試老是提示'GO附近有錯誤',刪除紅色部分的代碼后測試通過。這是千真萬確的。 我將下面的代碼用查詢分析器能夠正確執行。 use XSCJ GO select 学号,姓名,性别名,出生日期,专业名,总学分,备注 from XS,XBM where XS.性别=XBM.性别 and 学号='001101' GO 再次麻煩各位高手幫幫忙! |
ko
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:28 回覆:785 積分:444 註冊:2002-08-14 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |