jacksonhuang
一般會員
發表:26 回覆:22 積分:9 註冊:2004-04-20
發送簡訊給我
|
以下是code
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Text = "select * from "+AnsiString(buff.field.login.user.uid);
ADOQuery1->Open(); int num=ADOQuery1->RecordCount;
Friend_List send;
buff.field.partner.number=ADOQuery1->RecordCount;
AThread->Connection->WriteBuffer((void *)&buff,sizeof(Command_header));
for(int k=0;k Close();
ADOQuery2->SQL->Clear();
ADOQuery2->SQL->Text = "select * from Account_List where U_ID='"+ADOQuery1->Fields->Fields[0]->AsString+"'";
ADOQuery2->Open(); if(difftime(time(NULL),ADOQuery2->Fields->Fields[3]->AsInteger)>10 && (ADOQuery2->Fields->Fields[3]->AsInteger)!=0)
{
ADOQuery3->Close();
ADOQuery3->SQL->Clear();
ADOQuery3->SQL->Text = "select * from "+ADOQuery1->Fields->Fields[0]->AsString;
ADOQuery3->Open();
int upnum=ADOQuery3->RecordCount;
for(int x=0;xClose();
ADOQuery4->SQL->Clear();
ADOQuery4->SQL->Text = "update "+ADOQuery3->Fields->Fields[0]->AsString+" set Now_Status='0',IP=' ' where F_UID='"+ADOQuery2->Fields->Fields[0]->AsString+"'";
ADOQuery4->ExecSQL();
DataSource3->DataSet->Next();
}
ADOQuery5->Close();
ADOQuery5->SQL->Clear();
ADOQuery5->SQL->Text = "Update Account_List set Now_Status='0',Check_time='0' where U_ID='"+ADOQuery1->Fields->Fields[0]->AsString+"'";
ADOQuery5->ExecSQL();
}
ADOQuery5->Close();
ADOQuery5->SQL->Clear();
ADOQuery5->SQL->Text = "select * from "+AnsiString(buff.field.login.user.uid);
ADOQuery5->Open();
strcpy(send.uid,ADOQuery1->Fields->Fields[0]->Text.c_str());
strcpy(send.nickname,ADOQuery1->Fields->Fields[1]->Text.c_str());
strcpy(send.now_status,ADOQuery1->Fields->Fields[2]->Text.c_str());
AThread->Connection->WriteBuffer((void *)&send,sizeof(Friend_List));
DataSource1->DataSet->Next();
} 如果加上紅色的
ADOQuery5->Close();
ADOQuery5->SQL->Clear();
ADOQuery5->SQL->Text = "select * from "+AnsiString(buff.field.login.user.uid);
ADOQuery5->Open();
並且把
strcpy(send.uid,ADOQuery1->Fields->Fields[0]->Text.c_str());
strcpy(send.nickname,ADOQuery1->Fields->Fields[1]->Text.c_str());
strcpy(send.now_status,ADOQuery1->Fields->Fields[2]->Text.c_str());
AThread->Connection->WriteBuffer((void *)&send,sizeof(Friend_List));
DataSource1->DataSet->Next();
}
的紅色部份改成ADOQuery5就會有錯
ps.加上ADOQuery5是要得到最新的data(之前的ADOQuery1的data己經被update過了)
謝謝
|
bass15
高階會員
發表:24 回覆:171 積分:119 註冊:2003-10-27
發送簡訊給我
|
應該是SQL組錯了吧
ADOQuery5->SQL->Text = "select * from " AnsiString(buff.field.login.user.uid); 之中 from 後面應該是接table的名稱 然後 再接where
例如:
ADOQuery5->SQL->Text ="select * from table1 where table1.uid=" AnsiString(buff.field.login.user.uid); //其中table1是Table的名稱 uid是table1的欄位
|
jacksonhuang
一般會員
發表:26 回覆:22 積分:9 註冊:2004-04-20
發送簡訊給我
|
謝謝bass15大大
不過,可能是我的問題問得不是很清楚~
AnsiString(buff.field.login.user.uid); <-- 是我的一個table的名稱 在我的access裡,我用每一個account 的名稱去create一個table,專門用 來存放有關於這個account的一些資訊 不過還是很謝謝你....
|
bass15
高階會員
發表:24 回覆:171 積分:119 註冊:2003-10-27
發送簡訊給我
|
你的錯誤訊息看起來像是SQL中的FROM子句錯誤,建議在ADOQuery5->Open();前設中斷點看看你的ADOQuery5->SQL->Text裡面的值是什麼,
有可能buff.field.login.user.uid是空值或是有一些特殊字
|
jacksonhuang
一般會員
發表:26 回覆:22 積分:9 註冊:2004-04-20
發送簡訊給我
|
謝謝bass15大大 我有設過斷點去看內容,不過buff.field.login.user.uid的值 是正確的(我要查詢的那個table的名稱)
所以我在想是不是有可能我用了太多的query,而且query的序順不對 謝謝~~
|