線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1126
推到 Plurk!
推到 Facebook!

select使用query.open卻出現怪問題??

答題得分者是:cashxin2002
agogorz
初階會員


發表:9
回覆:34
積分:28
註冊:2005-04-09

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-09-27 08:18:57 IP:61.223.xxx.xxx 未訂閱
一開始使用的時候還可以執行, 但一新增其他的query及其他的update跟查詢後 出現奇怪的error:cant retrieve resultset data 我是使用query.open來select..如果用exec會無法出現結果! 不知道是什麼原因呢?
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-09-27 09:06:12 IP:202.62.xxx.xxx 未訂閱
您好﹗    Open方法和ExecSQL方法在使用時請注意如下﹕ Open方法适用于有資料回傳的SQL語法﹐如Select ExecSQL方法适用于無資料回傳的SQL語法﹐即對資料庫內容有變更異動的SQL語法﹐如Insert, Delete, Update等等﹒    ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
agogorz
初階會員


發表:9
回覆:34
積分:28
註冊:2005-04-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-09-27 09:39:20 IP:61.223.xxx.xxx 未訂閱
hi cashxin2002; 我是使用select時使用open出現error的,其他尚有使用update 在error發生後 我改用新的query update 但error依舊 謝謝你的回應
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-09-27 11:07:54 IP:202.62.xxx.xxx 未訂閱
您好﹗    能否貼出相關的程式碼部分來看看﹖    ================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
agogorz
初階會員


發表:9
回覆:34
積分:28
註冊:2005-04-09

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-09-27 15:06:14 IP:220.143.xxx.xxx 未訂閱
您好 cashxin2002大大 程式碼如下    procedure tformcreate ....    //sql連線    ZConnection1.Connect;    zquery2.sql.clear;    zquery2.sql.text := 'update member set online_status = 1 where online_status = 0';    ZQuery2.ExecSQL ; .... procedure tclientsocketread .... if (s1[1] = 'X')then  // 使用者離線    begin       zquery1.close;    zQuery1.sql.Clear;      zquery1.sql.text := 'update member set online_status = 1 where member_id = ''' + name + '''';      zquery1.execsql;      memo1.Lines.insert(0,s1); //server端顯示狀態     end; ....  if (name<> '') and (pass<> '') then    begin    zquery1.close;     zQuery1.sql.Clear;      zquery1.SQL.text:= 'select * from member where member_id = ''' + name + ''' and member_Passwd = ''' + Pass + '''';      datasource1.dataset:=zquery1;      dbgrid1.DataSource :=datasource1;      zquery1.open; // 就是這行會出問題 if zquery1.fields[0].AsString = '' then begin for i:=0 to ServerSocket1.Socket.ActiveConnections-1 do if serverSocket1.Socket.Connections[i].SocketHandle=handle then //這是為了確認所要送出訊息的對象 begin ServerSocket1.Socket.Connections[i].SendText(hh 'G' 'error' bb); //Connections代表所有連線的對象, 必須用上面SocketHandle來辨認 break; end; end else if (zquery1.FieldByName('online_status').value = 1) then //確認此ID未曾登入 begin for i:=0 to ServerSocket1.Socket.ActiveConnections-1 do if serverSocket1.Socket.Connections[i].SocketHandle=handle then //這是為了確認所要送出訊息的對象 begin ServerSocket1.Socket.Connections[i].SendText(hh 'G' name bb); //Connections代表所有連線的對象, 必須用上面SocketHandle來辨認 zquery2.close; zquery2.sql.clear; zquery2.sql.text := 'update member set online_status = 0 where member_id = ''' name ''''; zquery2.execsql; break; end; end //如果已經登入(online_status=0)的話,就把雙方踢掉並把online_status改為1 else begin zquery2.close; zquery2.sql.clear; zquery2.sql.text := 'update member set online_status = 1 where member_id = ''' name ''''; zquery2.execsql ; for i:=0 to ServerSocket1.Socket.ActiveConnections-1 do ServerSocket1.Socket.Connections[i].SendText(hh 'H' name bb); //踢掉同樣id的connections end; end; end; end;
agogorz
初階會員


發表:9
回覆:34
積分:28
註冊:2005-04-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-09-27 15:10:34 IP:220.143.xxx.xxx 未訂閱
hmm..我實在是個豬頭.. 重開過後 這個問題居然好了 為了這個bug 我從凌晨三點弄到十點 Orz 謝謝大大的回應..難怪沒什麼人遇到'can not retrieve resultset data' 重開機 問題就不見了@@
系統時間:2024-06-16 13:27:23
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!