我在adoquery中的sql屬性中加上select * from baseDB where No=:No
現在的問題是.本來應該有數據的,卻沒有顯示數據.
如果是把adoquery中的sql屬性中加上select * from baseDB (去掉參數)的話,就有數據顯示.好奇怪.不知道大俠那裡岀錯了呢?
我又試著把數據庫從access改為sqlserver就沒有問題.一切都正常.好奇怪
代碼如下procedure TFrm_Sys.ComboBox1Change(Sender: TObject);
var str_server:string ;
begin
try
 begin
   
   str_server:=ComboBox1.Items.Strings[ComboBox1.ItemIndex];
   ADOQuery1.Parameters.ParamByName('No').Value:= str_server;
   ADOQuery1.Open;
   FtpServerEdit.Text:= ADOQuery1.FieldByName('FtpServer').AsString ;
   UserIDEdit.Text:= ADOQuery1.FieldByName('UserID').AsString;
   PasswordEdit.Text:= ADOQuery1.FieldByName('Password').AsString;
   CurrentDirEdit.Text:=ADOQuery1.FieldByName('CurrentDir').AsString;
   FileNameEdit.Text:=  ADOQuery1.FieldByName('FileName').AsString;
   LocalEdit.Text:= ADOQuery1.FieldByName('Local').AsString;
 end  ;
 finally
   
   ADOQuery1.Close;
 begin
 end;
 end;end;

解决方案 »

  1.   

    ADOQuery1.Parameters[0].Value:= str_server;
      

  2.   

    str_server:=ComboBox1.Items[ComboBox1.ItemIndex];
      

  3.   

    to  yongxin800() ADOQuery1.Parameters[0].Value:= str_server;和ADOQuery1.Parameters.ParamByName('No').Value:= str_server;應該是一樣的吧to no在access的類型是"文字類型"
    參數No在delphi中是ftFixedChar類型.我也試過把ftFixedChar類型改為其他類型如ftString
    也不成功,結果還是沒有數據.把數據庫從access改為sqlserver就沒有問題.有正確的數據顯示.謝謝
      

  4.   

    一般情况下你在sql属性中静态的加入SQL语句时不要用参数,那样它可能会认为需要配备datasource,所以若要使用参数,就在程序中写吧
      

  5.   

    很可能是参数据的类型不对,或者转换str_server的类型
      

  6.   

    to WGYKING(修罗是谁?!) 
    不是漢字問題.我用了unicode編碼to  Tensionli() 
    在程式裡面寫add的sql語句一樣的問題.to  ghchen()
    應該不是參數的問題.
      

  7.   

    str_server:=ComboBox1.Items.Strings[ComboBox1.ItemIndex];
    改成
    str_server :=ComboBox1.Text
      

  8.   

    在程序运行过程中把SQL语句显示出来看一下对不对,说不定参数根本没传过去
      

  9.   

    兄吧,如果是从你给你代码上看,你的确看不到数据,因为你已把他关了,你可能对异常的用法不是很了解
    如果你想在打开后出现异常才关闭请如下写
    try
      ...
      open;
      ...
    except
      close
    end;
    而不是你所写的用finally
    因为它是不管出不出错总是会执行
    这对资源释放用得多.对于其它写法按前面几位的建议可相应改一下.