select使用query.open卻出現怪問題?? |
答題得分者是:cashxin2002
|
agogorz
初階會員 ![]() ![]() 發表:9 回覆:34 積分:28 註冊:2005-04-09 發送簡訊給我 |
|
cashxin2002
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
agogorz
初階會員 ![]() ![]() 發表:9 回覆:34 積分:28 註冊:2005-04-09 發送簡訊給我 |
|
cashxin2002
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
agogorz
初階會員 ![]() ![]() 發表:9 回覆:34 積分:28 註冊:2005-04-09 發送簡訊給我 |
您好 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 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |