各位高手大佬,請教如下問題
delphi xe7, datasnap 遠程服務器端是fdcquery, mysql,
客戶端用cliendataset 剛開始聯合查詢兩個表 (一個是orderlist, 一個是類似結構的purchaselist表格),顯示到stringgrid中,
在stringgrid中修改之后,分別用cdslist, cdspurchase applyupdate到資料庫,更新之后,要重新讀取最新的資料顯示出來,但是問題就在于重新聯合查詢出來的資料行數不正確,比如4行資料,重繪后有時候是1行,也有可能是6,8行。
實際mysql里面的兩個表的資料都是對的。
請各位看看什么原因?是不是cds剛剛applyupdate之后,datasetprovider中還沒有重繪?
if (self.cdsHead.Active=false) or (self.cdsList.Active=false) then
begin
showmessage('資料集沒有開啟不能提交更新。');
exit;
end;
try
if self.cdsHead.ApplyUpdates(0)=0 then
if self.cdsList.ApplyUpdates(0)=0 then
if self.cdsPurchase.ApplyUpdates(0)=0 then
begin
application.MessageBox('提交服務器更新成功。','提示');
end;
except
on E: exception do
showmessage('提交服務器更新出錯。'+E.Message);
end;
//更新完成后重新讀取資料
cdspurchase.Active:=false;
cdspurchase.CommandText:='UPDATE tbpurchaselist b, tborderlist a '
+'SET b.`autoNumber`=a.`AutoNumber` WHERE '
+'(b.`orderNo`=a.orderno) AND (b.`autono`=a.`AutoNo`)';
cdspurchase.Execute;
self.cdsList.Close;
self.cdsList.CommandText:=
'SELECT a.`AutoNumber`,a.`AutoNo`,a.`GroupMemo`,a.`itemno`,a.`PartNumber`,'
+'a.`CDes`,a.`CQuantity`,a.`CUnit`,a.`Price`,a.`Amount`,a.`CRemark`,'
+'b.`MyCode`,b.`MyDesEN`,b.`MyDesCHN`,b.`MyUnit`,b.`MyQty` ,'
+'b.`autoNumber`,b.`supplycode`,b.`supplyname`,b.`costprice`,'
+'b.`costCurrency`,b.`discount`,b.`costSum`,b.`sremark`,b.`orderno`,'
+'a.`machinetype`,b.`PONo`,b.`Purchased`,b.`Recieved` ,b.`itemno` '
+'FROM tborderlist a LEFT JOIN tbpurchaselist b'
+' ON a.`AutoNumber`=b.`autoNumber` '
+'where a.Orderno="'+ getOrderno + '" order by autono';
self.cdsList.Active := true;
//self.cdslist.indexfieldnames:='autono';
//showmessage('重新讀取的記錄行數:'+inttostr(self.cdslist.recordcount));
clearrows(sgList);
readDataset(self.cdsList); // 把資料庫的記錄讀取到表格中
uj5u.com熱心網友回復:
我用的也是datasnap,代碼比你的少多了,我用你是FDMemTable記憶體表代替的CDS,手機上的沒有代碼給你uj5u.com熱心網友回復:
現在我用cds更新提交沒有錯誤,就是提交之后,重新讀取記錄數,行數就不對。uj5u.com熱心網友回復:
看來沒人了知道了?uj5u.com熱心網友回復:
簡單看你的代碼,邏輯上應該是正確的。檢查方向,更新后,檢查服務器的資料庫是否已正常提交。如果在正常提交的情況 下,再檢查讀取資料的正確性。uj5u.com熱心網友回復:
提交以后資料庫中已經有了實際的資料了。另外,如果上述的代碼執行完以后,把表單關閉,或者通過表單上的open tBUTTON重新打開讀取資料的話,現實的就是正確的。
所以很奇怪啊,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/9569.html
標籤:數據庫相關
下一篇:闊別csdn多年,再回首!
