a126154362
一般會員
發表:21 回覆:13 積分:6 註冊:2004-05-30
發送簡訊給我
|
引言:
我想要用ADOQuery做資料庫的insert功能 但是我想要插入的資料是'變數' 請問各位大大要怎麼做呢
小弟寫的程式碼(server端)(client端只傳帳號,密碼和接收訊息而已)
//--------------------------------------------------------------------------- #include
#pragma hdrstop #include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
AnsiString buf,buf1,in=12;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{ }
//--------------------------------------------------------------------------- void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
TCustomWinSocket *Socket)
{ buf = Socket->ReceiveText();
Edit1->Text=buf; }
//--------------------------------------------------------------------------- void __fastcall TForm1::ServerSocket2ClientRead(TObject *Sender,
TCustomWinSocket *Socket)
{
AnsiString test;
buf1 = Socket->ReceiveText();
Edit2->Text=buf1;
}
//--------------------------------------------------------------------------- void __fastcall TForm1::ServerSocket4ClientRead(TObject *Sender,
TCustomWinSocket *Socket)
{
in=Socket->ReceiveText();
Label4->Caption=in;
AnsiString test;
if(in==1)
{
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->Parameters->CreateParameter("checkID",ftString,pdInput,30,buf);
ADOQuery1->Parameters->CreateParameter("checkPassword",ftString,pdInput,30,buf1);
ADOQuery1->SQL->Add("Select * From 資料表1 Where ID=:checkID and Password=:checkPassword");
ADOQuery1->Open(); if(ADOQuery1->RecordCount==1)
{
test="登入成功";
ServerSocket3->Socket->Connections[0]->SendText(test);
Edit3->Text=ADOQuery1->RecordCount;
}
else
{
test="登入失敗";
ServerSocket3->Socket->Connections[0]->SendText(test);
}
}
else
{
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->Parameters->CreateParameter("checkID",ftString,pdInput,30,buf);
ADOQuery1->Parameters->CreateParameter("checkPassword",ftString,pdInput,30,buf1);
ADOQuery1->SQL->Add("Select * From 資料表1 Where ID=:checkID");
ADOQuery1->Open();
Edit3->Text=ADOQuery1->RecordCount;
if(ADOQuery1->RecordCount==1)
{
test="此帳號以有人使用";
ServerSocket3->Socket->Connections[0]->SendText(test);
}
else
{
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->Parameters->CreateParameter("checkID",ftString,pdInput,30,buf);
ADOQuery1->Parameters->CreateParameter("checkPassword",ftString,pdInput,30,buf1);
ADOQuery1->SQL->Add("Insert into 資料表1 (ID,Password)");
ADOQuery1->SQL->Add("Values (:checkID,:checkPassword)");
ADOQuery1->ExecSQL();
test="註冊成功";
ServerSocket3->Socket->Connections[0]->SendText(test);
}
} }
//---------------------------------------------------------------------------
其他功能都可以正常
只有紅色部分要寫入資料庫時有錯誤
(提供不一致或不完全的資訊導致參數不適當的被拒絕)
不知道為什麼
|
a126154362
一般會員
發表:21 回覆:13 積分:6 註冊:2004-05-30
發送簡訊給我
|
引言:
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->Parameters->CreateParameter("checkID",ftString,pdInput,30,buf);
ADOQuery1->Parameters->CreateParameter("checkPassword",ftString,pdInput,30,buf1);
ADOQuery1->SQL->Add("Insert into 資料表1 (ID,Password)");
ADOQuery1->SQL->Add("Values (:checkID,:checkPassword)");
ADOQuery1->ExecSQL();
test="註冊成功";
ServerSocket3->Socket->Connections[0]->SendText(test);
}
} }
//---------------------------------------------------------------------------
其他功能都可以正常
只有紅色部分要寫入資料庫時有錯誤
(提供不一致或不完全的資訊導致參數不適當的被拒絕)
不知道為什麼
剛剛去爬了一下文章 找到我的問題了 就是上文黃色的部份(要刪除) 參考這篇文章:
http://delphi.ktop.com.tw/topic.php?topic_id=30115
|