首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

数据库应用程序三层结构中,客户端保存有关问题

2012-04-06 
数据库应用程序三层结构中,客户端保存问题数据库应用程序三层结构中,客户端保存问题应用程序服务端如下:在

数据库应用程序三层结构中,客户端保存问题
数据库应用程序三层结构中,客户端保存问题


应用程序服务端如下:

在工程中加入Remote   Data   Module,  

在Remote   Data   Module中加入以下控件:
 
1.   ADOConnection1     通过ODBC连接到数据库

2.   ADODataSet1  

3.   DataSetProvider1  


客户端如下:

在工程中加入Data   Module中的Customer   Data,

在Customer   Data中加入以下控件:

1.   SocketConnection1

2.   ClientDataSet1  

3.   DataSource1

4.   DBGrid1

以InterBase   Server   7.5   做后台数据库,利用工具软件连接到数据库,加入测试数据。

客户端登录连接服务端成功,DBGrid1中能正常显示出数据库表中的数据。


问题是:

CustomerData-> ClientDataSet1-> Append();     //添加空记录

CustomerData-> ClientDataSet-> FieldByName( "MANUFACTURE ")-> AsString   =   Edit1-> Text;
CustomerData-> ClientDataSet1-> FieldByName( "NAME ")-> AsString   =   Edit2-> Text;
CustomerData-> ClientDataSet1-> FieldByName( "TYPE ")-> AsString   =   Edit3-> Text;
CustomerData-> ClientDataSet1-> FieldByName( "MAKE_DATE ")-> AsDateTime   =   DateTimePicker-> Date;

CustomerData-> ClientDataSet1-> Post();   //保存记录

经以上操作后,DBGrid1的显示中已增加了一条不完整的记录-----只有日期类型的字段有文字出现,其他字段都是空白!

继续将记录保存到数据库表中后
CustomerData-> ClientDataSet1-> ApplyUpdates(0);

数据库表中已增加了记录,但也是不完整----跟DBGrid1中显示的一样!


为什么?



[解决办法]
“DBGrid1的显示中已增加了一条不完整的记录”先解决此问题,很可能是数据类型问题导致
检查你的赋值及赋值过程有没有不妥的地方
[解决办法]
只有日期类型的字段可以正确保存,其他是空值,则很大程度上是数据类型匹配的问题引起的.

你不要使用TEdit类,改用数据感知的TDBEdit类,应该可以解决问题.

使用以下来添加空记录
CustomerData-> ClientDataSet1-> Insert(); //添加空记录

然后直接在数据感知组件中输入数据

最后使用以下来保存数据
CustomerData-> ClientDataSet1-> Post(); //保存记录

热点排行