我有一個Tadocommand我datamodule連接到MSSQL storedproc。 storedproc用於更新表格。 在我的代碼中,我將其中一個Tclientdatasets的beforeupdaterecord方法稱爲tadocommand。如何重置德爾福Tadocommand參數
首先,我使用deltads.fieldbyname()提供tadocommand參數的值。然後我調用執行過程Tclientdataset的newvalue。它適用於第一次更新,但如果我嘗試執行下一次更新,則會生成「錯誤更改爲datetime的varchar」。
如果我動態創建即
sp1_editcontract:=Tadocommand.Create(nil);
sp1_editcontract.CommandType:=cmdStoredProc;
sp1_editcontract.Connection:=DMDBconn.DBConn;
sp1_editcontract.CommandText:='EditContract';
sp1_editcontract.Parameters.Refresh;
//assign parameter values
sp1_editcontract.execute;
sp1_editcontract.free;
在beforeupdaterecord方法tadocommand它工作沒有任何錯誤。我認爲在datamodule上使用靜態Tadocommand時,參數值存在一些問題。
爲什麼使用靜態創建的tadocommand而不是動態創建的tadocommand時多重更新會產生錯誤?
任何想法爲什麼它適用於動態創建的tadocommand而不是數據模塊上的 – mem100 2012-07-06 13:49:46
問題更新 – mem100 2012-07-06 15:43:00
您是否正在更改調用之間的命令(要調用的過程名稱)? – jachguate 2012-07-06 17:30:27