sSQL := ' select PlateNO,'
+ ' (case CarOwnerType when '+ QuotedStr('N') +' then ' + QuotedStr('內部')
+ ' when '+ QuotedStr('Z') + ' then '+ QuotedStr('月租') +' end) '
+' as CarOwnerType ,'
+ ' CarOwnerName,CarOwnerMobile,'
+ ' convert(varchar(30),BeginTime,23) as BeginTime,'
+ ' convert(varchar(30),EndTime,23) as EndTime,'
+ ' (case CarStatus when '+ QuotedStr('1')+' then '+QuotedStr('正常')
+ ' when '+QuotedStr('0') +' then ' +QuotedStr('已過期')+' end) as CarStatus,'
+ ' CarOwnerAddress, '
+ '(case UseMark when '+ QuotedStr('1')+' then '+ QuotedStr('啟用')
+ ' when '+ QuotedStr('0')+' then '+QuotedStr('禁用')+' end) as UseMark,'
+ ' Memo from T_CarAndOwnerInfo ';
procedure TDM.GetCDSBySQL(sSQL: string; var aCDS: TClientDataSet);
begin
DataSetProvider1.DataSet := ADOQuery1;
with ADOQuery1 do
begin
CLOSE;
SQL.CLEAR;
SQL.ADD(sSQL);
OPEN;
ACDS.Data := DataSetProvider1.Data;
end;
end;
問題是:修改 ACDS 是總報錯‘Field 'CarOwnerType' cannot be modified’;
修改代碼如下:
ACDS .Edit;
ACDS .FieldByName('CarOwnerType').AsString := sCarOwnerType;
ACDS .FieldByName('CarStatus').AsString := scarstatues;
ACDS .FieldByName('UseMark').AsString := susestatues;
ACDS .Post;
請各位大神幫忙看下,謝謝了!
uj5u.com熱心網友回復:
表示這段代碼復雜,你為什么不把上面的一大段功能用存盤程序實作,Delphi在呼叫它的引數了!uj5u.com熱心網友回復:

照你的寫的沒有問題 沒有提示不過我的是ORACLE 的
uj5u.com熱心網友回復:
CarOwnerType 是你AS出的來欄位不是表里真正存在的欄位,所以無法更新uj5u.com熱心網友回復:
樓上正解TClientDataSet是跟資料庫系結的,CarOwnerType 在實際庫中沒有真正的列所以無法更新轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/116030.html
標籤:數據庫相關
下一篇:大家幫我看看這個如何轉換的
