全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1043
推到 Plurk!
推到 Facebook!

如何解決這個錯誤訊息?

尚未結案
mathewzhao
中階會員


發表:121
回覆:164
積分:67
註冊:2003-04-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-11-12 11:24:32 IP:61.150.xxx.xxx 未訂閱
各位先進好!    資料庫: Sybase Adaptive Server Anywhere 6.0  料連接元件: Query(ODBC)  Delphi Version: Delphi5     Q:執行下面程式時,出現錯誤訊息:'Could not find Object' ,原因好像出在 '+Combobox1‧Text+',但不知如何解決? Code如下:
 procedure TForm1.ExecuteSQL(Query:TQuery;SQLCommand:String);
  begin
   Query.Close;
   Query.SQL.Clear;
   Query.SQL.Add(SQLCommand);
   Query.Open;
  end;
  
  procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
  begin
   if (key=#13) and (Combobox1.Text<>'') then
     begin
        ExecuteSQL(Query1,'Select * from Table1 where ' Combobox1.Text ' like ''%' Edit1.Text '%''  ');
     end;
  end;
kensoong
初階會員


發表:31
回覆:70
積分:45
註冊:2003-05-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-11-12 11:50:09 IP:61.56.xxx.xxx 未訂閱
1. procedure TForm1.ExecuteSQL(var Query:TQuery;SQLCommand:String); 2. 將Query.Open; 改成Query.ExecSQL; 請試試...
ko
資深會員


發表:28
回覆:785
積分:444
註冊:2002-08-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-11-12 12:09:58 IP:61.221.xxx.xxx 未訂閱
mathewzhao 你好: 問題是出在 ExecuteSQL(Query1,'Select * from Table1 where '+Combobox1.Text+' like ''%' Edit1.Text '%'' '); 紅色的部分 因為單引號在程式定義成 2 個單引號中間為字串 因此你要在sql中產生 '% 查詢值 %' 請參考 ExecuteSQL(Query1,'Select * from Table1 where ' Combobox1.Text ' like ' QuotedStr(''%' Edit1.Text '%'));
------
======================
昏睡~
不昏睡~
不由昏睡~
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-11-12 15:09:32 IP:203.95.xxx.xxx 未訂閱
'Could not find Object' 看起來是 sql 中的欄位不在資料表或資料表不在資料庫中的現象. 請先直接 show 出該 sql command 確認一下, 下面是多寫了存成檔案, 以方便 check 的處理:    
 procedure TForm1.ExecuteSQL(Query:TQuery;SQLCommand:String);
 var
   strs: TStringList;
  begin
   Query.Close;
   Query.SQL.Clear;
   Query.SQL.Add(SQLCommand);
   ShowMessage(SQLCommand);
   try
     Query.Open;
   except
     strs := TStringList.Create;
     strs.Text := SQLCommand;
     strs.SaveToFile('c:\errSql.txt');
     strs.Free;
   end;
   
  end;    
mathewzhao
中階會員


發表:121
回覆:164
積分:67
註冊:2003-04-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-11-12 17:09:05 IP:61.150.xxx.xxx 未訂閱
感謝各位前輩的熱心指點! 1)感謝kensoong前輩的指點! 希望大家共同進步! 2)感謝ko前輩的指點! 問題應該不是出在前輩所指的紅色部分,因為用timhuang前輩提供的方法檢查發現SQL是正確的: Select * from talbe1 where field1 like '3%' 3)感謝timhuang 前輩的指點! 程式修改後,然後執行發現:ShowMessage(SQLCommand)和C:\errSql.txt中的sql command都是正確的. 但用SQL Monitor查看時發現: SQL Prepare時不正確,沒有 where 部分. 另外:用google查找這個錯誤訊息時,在這個URL提到可能需修改registry,但沒有說清楚具體位置: http://www.elists.org/pipermail/delphi-db/1999-October/000543.html
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-11-13 22:19:01 IP:218.32.xxx.xxx 未訂閱
mathewzhao 你好 : 如果你確認該 SQL 可在 Sybase 下達, 那...參考下篇 試試透過 BDE 直接下SQL 看看. http://delphi.ktop.com.tw/topic.php?TOPIC_ID=26025
系統時間:2024-09-06 23:17:43
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!