- 浏览: 2072909 次
- 性别:
- 来自: 厦门
-
文章分类
- 全部博客 (1409)
- asp/asp.net学习 (241)
- oracle (10)
- delphi (295)
- java (27)
- pb (1)
- 每日点滴 (49)
- 学习方法 (40)
- 思想方面 (104)
- C语言 (5)
- C++ (1)
- 代码重构经验 (5)
- 软件工程 (3)
- 数据库 (99)
- 英语学习 (3)
- mysql (1)
- 该关注的网站或者网页 (42)
- 总结 (7)
- 要去做的事情 (33)
- 算法 (1)
- 网络方面 (29)
- 随感 (96)
- 操作系统 (36)
- UML (12)
- 常用工具的使用 (55)
- 脚本 (7)
- 汇编 (62)
- 数据结构 (2)
- 财务 (38)
- 语文作文 (16)
- 法律 (1)
- 股票 (88)
最新评论
-
devwang_com:
可以,学习了~~
列出文件夹下所有文件夹的树形结构--Dos命令 tree的使用 -
hvang1988:
不管用啊 frxrprt1.PreviewForm.Pare ...
fastReport预览时嵌入到别的窗体 -
00915132:
我也有这个疑问,非常 感 谢
left join加上where条件的困惑 --SQL优化 -
zhuyoulong:
学习了,高效读书
软件架构师要读的书 -
nTalgar:
非常感谢分享!
Application.ProcessMessages用法:
转自:http://faq.csdn.net/read/37602.html
问题一: 我在三层结构下做主从表,在服务器用的是巢状结构来关联主从结构,客户端用clientdataset的insert和applyupdates来提交,但主表数据可以正常提交写入数据库,但从表毫无动静,也就是说从表能写入clientdateset的缓存,但不能写入数据库,不管是用applyupdata(-1)还是用applyupdate(0)都是这样,请教各位老大这是什么原因?
问题二:有时候用clientdataset的edit方法和delete方法修改数据的时候程序会出错,提示说:不能执行该操作,该记录已被别人修改,(但实际上只有我一个人使用,并没有修改数据),不知这是什么原因?
我只是用clientdataset的insert,edit 再applyupdata的方法对一个数据表table1的abc纪录进行操作,然后由于某种需要,我用另一个clientadaset(专门执行sql语句的公用clientdataset)的commandtext执行一个更新此table1表中abc纪录的操作而已。
问题三:在问题二中,是不是用了clientdataset的insert,edit方法以后,就最好不要再用commandtext方法提交数据阿?我向别人请教,他说最好要么一直用clientdataset的insert,edit方法,要么一直用commandtext提交insert,update语句
问题四:用clientdataset的方法增删改数据时,有时候会提示:Cannot find record,No key specified. 我不知道这是什么原因引起的?有人说要加主键,但我的数据库表已经有主键,有人说是因为我的数据库表中有一个字段是设定自动增一的,又有的人说只需设置datasetprovider的某个属性就行了,莫衷一是,请各位先悟道者给个权威说法 :)
---------------------------------------------------------------
1)应该用applyupdate(0);出现不能提交的原因,主要是Delphi无法解析主从表的表名。只要在DataSetProvider中的OnGetTableName事件中写代码:
if (DataSet = qryMaster) then
TableName := 'MasterTableName'
else if (DataSet = qryDetail) then
TableName := 'DetailTableName';
这样就可以了。
---------------------------------------------------------------
Midas进阶 - 巢状数据表实现Master/Detail的应用系统
首先,还应该知道Master/Detail到底是什么关系;
其次,要明白什么是巢状数据表是什么意思;
Master/Detail这种主细关系,只要做过数据库程序的人应该都知道,在C/S结构里随时都是,很长见的;
巢状数据表应该如何理解?它就是分布式系统和C/S结构的对于Master/Detail的不同操作机制而引申的;从客户端而言,在C/S结构中,Master/Detail可以用两个数据集组件分别取出表中具有Master/Detail关系的数据,但是在分布多中,对于客户端而言,我们只关心Master的数据集的处理方式,而如何对应Master/Detail则是在应用服务方面进行操作,当我们正确连接了客户端的MasterClinetDataSet(TClientDataSet)时,其所对应的Detail就会随着数据包自动的下载到客户端,这就是巢状数据表的初步解释;而它的正真定义应该是:当数据封包在封装数据时,这个数据封包甚至能够把一个数据集封装起来;
下边用一个例程来说明:
应用服务端:在应用服务器上要实现两个数据组件的M/D(Master/Detail,以后用M/D代替)的关系,可以用TTable or TQuery ,TADOQuery or TADOTable or TADODataSet组件都完全可以;这儿要建立它们的M/D关系,和C/S中的完全一样(中间需要通过一个TDataSource连接);
客户端:在客户端只需要用一个TClientDataSet来接收数据,这儿更能体现“巢状“,所谓的接收数据是从应用服务端下载数据,是将M/D数据都下载下来,这后,Delphi可以自动的识别这是一个M/D结构的;此时需要将另一个TClientDataSet组件加进来,而且要设置它的DataSetField为下载数据的TClientDataSet中的Detail数据字段(可以这样理解);但不应该忘记了要执行TClientDataSet.Fetch Params,只有这样才可以实现Detail -> TClientDataSet的DataSetField的设置;
设置完成后,就可以正确运行了;
下边我给出设置实例,供参考
应用服务端窗体文件如下:
object DMF_LX: TDMF_LX
OldCreateOrder = False
Left = 192
Top = 107
Height = 409
Width = 570
object ADOConnection1: TADOConnection
Connected = True
ConnectionString =
'Provider=SQLOLEDB.1;Persist Security Info=True;User ID=sa;Initia' +
'l Catalog=pubs;Data Source=(local)'
/////数据连接字符串,有必要看一看;
LoginPrompt = False
Provider = 'SQLOLEDB.1'
Left = 72
Top = 32
end
object MADODataSet: TADODataSet
Connection = ADOConnection1
CursorType = ctStatic
CommandText = 'select * from publishers'
Parameters = <>
Left = 64
Top = 104
object MADODataSetpub_name: TStringField
FieldName = 'pub_name'
Size = 40
end
object MADODataSetcity: TStringField
FieldName = 'city'
end
object MADODataSetstate: TStringField
FieldName = 'state'
FixedChar = True
Size = 2
end
object MADODataSetcountry: TStringField
FieldName = 'country'
Size = 30
end
end
object DADODataSet: TADODataSet
Connection = ADOConnection1
CursorType = ctStatic
CommandText = 'select * from titles'
DataSource = MDDataSource
IndexFieldNames = 'pub_id'/////////这儿建立关系;
MasterFields = 'pub_id' /////////这儿建立关系;
Parameters = <>
Left = 168
Top = 104
end
object GADODataSet: TADODataSet
Connection = ADOConnection1
Parameters = <>
Left = 272
Top = 104
end
object MDDataSource: TDataSource
DataSet = MADODataSet
Left = 264
Top = 32
end
object MDataSetProvider: TDataSetProvider
DataSet = MADODataSet
Constraints = True
Left = 64
Top = 168
end
object DDataSetProvider: TDataSetProvider
DataSet = DADODataSet
Constraints = True
Left = 176
Top = 168
发表评论
-
form打开时的关闭代码
2011-10-25 20:29 1595摘自:http://topic.csdn.n ... -
TUpdateSQL更新问题 提示Update Failed
2011-08-29 20:26 1249摘自:http://topic.csdn.net/u/200 ... -
图解如何用Eurekalog跟踪程序错误
2011-08-12 07:28 952图解如何用Eurekalog跟踪程序错误 摘自:h ... -
VirtualBox 复制VDI 并能创建新的虚拟机
2011-07-21 11:14 2756摘自:http://www.nonabyte.net/how- ... -
截获所有异常 不报错
2011-07-12 16:52 1250摘自:http://media.ccidnet.c ... -
delphi exe程序以及DLL程序如何在模块内部获得各自的路径
2011-07-11 16:38 1314delphi Exe程序以及DLL程序如何在模块内部获得各自的 ... -
Delphi文本文件读写
2011-07-11 14:55 1271Delphi文本文件读写 (2008-10-31 1 ... -
Delphi自定义的消息的使用
2011-05-31 14:12 2325阅:已验证,可通过; 摘自:http://blog.1 ... -
怎么查看OutputDebugString输出的信息?debugview
2011-05-25 16:02 3844网上很多说用debugview查看,我自己写了一个程序,里面用 ... -
Delphi里查看该变量的内存值
2011-05-25 13:32 1140Delphi里查看该变量的内存值:Run==>Evalu ... -
注册表操作 写入autorun启动项,键值为本程序的全路径
2011-05-20 15:40 1837procedure TForm4.Button2Click ... -
报说包frx7和frxdb7都包含了某个单元的错误
2011-05-11 09:59 10481. 问题描述:在安装FastReport3的时候,安装到- ... -
Delphi中使用ListView和TreeView的Item中的Data可能被忽略的内存泄漏
2011-05-03 14:34 1474摘自:http://blog.csdn.net/g ... -
WM_USER的说明 用户消息ID
2011-04-28 10:46 1701WM_USER 摘自:http://baike.bai ... -
ToolButton不能改变大小
2011-04-28 10:38 3472问题描述:ToolButton不能改变大小? 问 ... -
Delphi里TOOLBAR 上的button的caption为什么显示不出来啊
2011-04-20 17:55 1784Delphi里TOOLBAR 上的button的caption ... -
delphi指针简单入门
2011-04-11 21:42 1164摘自:http://topic.csdn.net/t/2003 ... -
Delphi中paramstr的用法 应用程序间传递数据
2011-04-01 14:33 2122Delphi中paramstr的用法 应用程序间传递数据 ... -
Delphi中的THashedStringList对象 --大数据量时
2011-04-01 13:54 5170Delphi中的THashedStringLi ... -
inherited Create(AOwner); 和直接写inherited有区别吗
2011-03-26 15:44 1332摘自:http://zhidao.baidu.com/que ...
相关推荐
内容: 该数据集由Bornemann H、Oosthuizen WC、Schröder M等人于2014年发布,记录了来自Filchner Trough的威德尔海豹(FIL2014_wed_a_f_05)的最大潜水深度。数据集包含了1413个数据点,为研究威德尔海豹的潜水行为提供了宝贵资料。可以通过以下链接访问完整数据集:"" ()。
魔众帮助中心系统基于PHP开发,支持支持快捷导航和常见问题,帮助您搭建一套全面的帮助中心系统。 魔众帮助中心系统发布v3.3.0版本,新功能和Bug修复累计10项,系统内核升级,界面显示优化。
【负荷预测】布谷鸟(CS)算法优化BP神经网络的负荷及天气预测(Matlab代码实现)
【Java】Springboot整合Quertz动态定时任务_pgj
数电大作业篮球竞赛30s计时器源代码及报告
该项目是一款采用Vue框架开发的智能化车间库存盘点系统源码,整合了Java、JavaScript、HTML、Shell等多种编程语言,共计包含249个文件。其中,Java源文件77个,Vue组件72个,JavaScript脚本38个,SCSS样式表26个,XML配置文件10个,SVG图形5个,JSON数据3个,Git忽略文件2个,Markdown文档2个,ICO图标2个,全面支持车间库存管理需求。
C# - 图片抠像 - PP.Matting.HRNET - 含模型 - 完整可运行 。Sdcb.PaddleInference.dll, YamlDotNet.dll,ppmatting-hrnet_w18-human_512
该项目是一款基于C#语言的Cherish科普闯关游戏设计源码,包含107个文件,其中包括56个元数据文件、45个C#源代码文件、4个预制体文件和2个Markdown文件。游戏旨在提供寓教于乐的科普体验。
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
该项目为基于Java开发的在线书城设计源码,包含55个文件,涵盖41个Java源文件、10个XML配置文件、2个Git忽略文件、1个YAML文件和1个TXT文件。
sediment core GeoB17621-1的文档记录 内容 Lucchi, RG; Sabbatini, A; Nicolaisen, LS 等(2014)发布了关于沉积物岩芯GeoB17621-1的详细文档。该文档可通过DOI:"10.1594/PANGAEA.838871" () 获取。不过,当前文档的大小信息尚未提供。此研究对于了解特定地质层的历史及其变化具有重要意义。
图像处理新思路:微生物菌落图像分割
【Java】Springboot整合Quertz动态定时任务
无人机目标检测系统源码和数据集:改进yolo11-efficientViT
1.版本:matlab2014/2019a/2024a 2.附赠案例数据可直接运行matlab程序。 3.代码特点:参数化编程、参数可方便更改、代码编程思路清晰、注释明细。 4.适用对象:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业和毕业设计。
该项目是一款基于SpringBoot和Vue框架构建的Java智能教学资源推荐及在线问卷调查系统源码,包含144个文件,其中包括74个Vue组件文件、23个JavaScript脚本文件、22个PNG图片文件、7个JPG图片文件、5个CSS样式文件、3个Markdown文档、3个批处理文件、2个JSON配置文件、1个ICO图标文件和1个HTML文件。系统通过智能算法推荐教学资源,并支持在线问卷调查功能,适用于提升教学质量和学生学习体验。
基于树莓派和OpenCV的人脸识别
【springboot】springboot系列学习,现如今已经整合了redis(缓存中间件,键值数据库),kafka(消息中间件)
【Java】基于Java的的定时任务调度工具