客户端的代码
Memo1.Lines.text为select * from Customers;
procedure TForm1.Button4Click(Sender: TObject);
begin
cdsCustomer.Edit;
cdsCustomer.FieldValues['CustomerID']:=edit1.Text;
cdsCustomer.Post;
cdsCustomer.ApplyUpdates(0);//此处提交了后,数据并未写入数据库 为什么呢??
end;应用服务器端的设置情况
unit Unit2;{$WARN SYMBOL_PLATFORM OFF}interfaceuses
Windows, Messages, SysUtils, Classes, ComServ, ComObj, VCLCom, DataBkr,
DBClient, Project1_TLB, StdVcl, Provider, DB, ADODB;type
Tpc121 = class(TRemoteDataModule, Ipc121)
ADOTable1: TADOTable;
DataSetProvider1: TDataSetProvider;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
private
{ Private declarations }
protected
class procedure UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); override;
public
{ Public declarations }
end;implementation{$R *.DFM}class procedure Tpc121.UpdateRegistry(Register: Boolean; const ClassID, ProgID: string);
begin
if Register then
begin
inherited UpdateRegistry(Register, ClassID, ProgID);
EnableSocketTransport(ClassID);
EnableWebTransport(ClassID);
end else
begin
DisableSocketTransport(ClassID);
DisableWebTransport(ClassID);
inherited UpdateRegistry(Register, ClassID, ProgID);
end;
end;initialization
TComponentFactory.Create(ComServer, Tpc121,
Class_pc121, ciMultiInstance, tmApartment);
end.
Memo1.Lines.text为select * from Customers;
procedure TForm1.Button4Click(Sender: TObject);
begin
cdsCustomer.Edit;
cdsCustomer.FieldValues['CustomerID']:=edit1.Text;
cdsCustomer.Post;
cdsCustomer.ApplyUpdates(0);//此处提交了后,数据并未写入数据库 为什么呢??
end;应用服务器端的设置情况
unit Unit2;{$WARN SYMBOL_PLATFORM OFF}interfaceuses
Windows, Messages, SysUtils, Classes, ComServ, ComObj, VCLCom, DataBkr,
DBClient, Project1_TLB, StdVcl, Provider, DB, ADODB;type
Tpc121 = class(TRemoteDataModule, Ipc121)
ADOTable1: TADOTable;
DataSetProvider1: TDataSetProvider;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
private
{ Private declarations }
protected
class procedure UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); override;
public
{ Public declarations }
end;implementation{$R *.DFM}class procedure Tpc121.UpdateRegistry(Register: Boolean; const ClassID, ProgID: string);
begin
if Register then
begin
inherited UpdateRegistry(Register, ClassID, ProgID);
EnableSocketTransport(ClassID);
EnableWebTransport(ClassID);
end else
begin
DisableSocketTransport(ClassID);
DisableWebTransport(ClassID);
inherited UpdateRegistry(Register, ClassID, ProgID);
end;
end;initialization
TComponentFactory.Create(ComServer, Tpc121,
Class_pc121, ciMultiInstance, tmApartment);
end.
并没有异常
在dbgrid中都已经反映出来了
但是就是sqlserver那个数据库确没有改变我用的是sqlserver2000数据库
我不知道问题出在哪儿了
delphi
在调试的时候并没有报告异常
但是
sqlserver数据库中该表是有约束条件的
所以修改不成功
并没有异常
在dbgrid中都已经反映出来了
但是就是sqlserver那个数据库确没有改变
==================================================
delphi
在调试的时候并没有报告异常
但是
sqlserver数据库中该表是有约束条件的
所以修改不成功
==================================================
因为cdsCustomer.ApplyUpdates(0); 的参数为0,所以客户端不能接收到错误,而DBGrid显示的是本地的数据,要想在客户端捕获错误,必须设置ApplyUpdates的最大错误参数,-1是出现错误后服务器立即停止操作,返回错误。至于客户端捕获错误的具体办法,Delphi例子中有,可以参考。表的约束条件错误就是我前面所说的外键约束违法了