簡體   English   中英

選擇查詢在編輯中始終返回-1

[英]select query returns always -1 in edit

我在C ++ Builder中有這段代碼。

void __fastcall TForm1::Button1Click(TObject *Sender)
{

AnsiString am="2323246";

   Form1->ADOQuery1->SQL->Text="SELECT T_ID FROM TABLE WHERE TABLE.T_AM='"+am+"'";

   Form1->Edit1->Text=Form1->ADOQuery1->ExecSQL();

}

即使我為am嘗試了其他值,它也總是在編輯框中返回-1作為結果。 這些值存在於我的數據庫中,如果我嘗試在數據庫中執行查詢,則它可以正常工作並返回正確的ID。

T_AM是什么變量類型? 如果是整數或浮點數,請不要使用引號。 另外,請查看准備好的查詢或語句。 這種類型的查詢容易受到SQL注入的攻擊。 例:

PrepareSQL("SELECT T_ID FROM TABLE WHERE T_AM = %d", am);
ExecSQL();

您將需要檢查API文檔以獲取確切的語義和語法。

查看API,您需要執行以下操作:

VARIANT vName;
vName.vt = VT_BSTR; //Variant type for BSTR
vName.bstrVal = _bstr_t("2323246");

Form->ADOQuery1->Parameters->Append(
    Form->ADOQuery1->CreateParameter(_bstr_t("T_AM"),adChar,adParamInput,50,vName)
);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM