2013-05-02 128 views
0

我寫此查詢:更新語句拋出異常

 Ado_All.Parameters.Clear; 
     Ado_All.SQL.Clear; 
     Ado_All.SQL.Add('update Tbl_Customer_Services set fk_Customer =:0, fk_Services =:1, Start_Date =:2, End_Date=:3'); 
     Ado_All.SQL.Add(' ,Hesab =:4, Domain_Name =:5,Comments =:7 where Customer_Services_Id =:6 ');  
     Ado_CmbNames.MoveBy(Cmb_Customer.ItemIndex); 
     Ado_All.Parameters[0].Value := Ado_CmbNames.FieldByName('Customer_Id').AsString; 
     Ado_All.Parameters[1].Value := '1'; 
     Ado_All.Parameters[2].Value := '10/10/2010'; 
     Ado_All.Parameters[3].Value := '10/10/2010'; 
     Ado_All.Parameters[4].Value :=Txt_Mali.Text; 
     Ado_All.Parameters[5].Value := Txt_Domin.Text; 
     Ado_All.Parameters[6].Value := ADOQuery2.FieldByName('Customer_Services_Id').AsString; 
     Ado_All.Parameters[7].Value := Txt_Domin.Text; 
     Ado_All.ExecSQL; 

Ado_All是AdoQuery。但它有以下錯誤: enter image description here

任何想法?

回答

0

我懷疑SQL語句中的冒號字符(:)導致了問題。嘗試使用= ?作爲SQL文本中參數值的佔位符,例如

UPDATE Tbl_Customer_services SET fk_Customer = ?, fk_Services = ?, ... 

,並確保參數值添加到.Parameters集合中的確切使他們出現在SQL語句。