在DELPHI中能不能构造一个 虚拟 的数据集? ( 积分: 50 )

  • 主题发起人 主题发起人 Flashcqxg
  • 开始时间 开始时间
F

Flashcqxg

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在DELPHI中构造一个虚拟了数据,然后在DBGRID中显示<br>有没有这种做法?????能不能实现????<br>谢谢.
 
可以。你可以自己建個DataSet&nbsp;,然後在裏面插入數據。然後就可以顯示出來了。操作完<br>FREE一下就可以了。
 
我遇到这个问题。。我也是想虚拟一个数据集。。。。。我的数据库里面的时间字段是数字字段。。。我用DateTimePicker1为查询条件,我首先是把选择的时间转为为字符,然后将字符转为数据库里面标准的格式,最后转为为整型(因为库里面的类型是数字类型)。。<br><br>这个是通过时间查询匹配的数字确定要查询的记录。<br><br>我的库里面是的数字字段是1070409,含义是2007-04-09....<br>我的关键在于dbgrid的显示要显示2007-04-09,而不是1070409。。。所有我和楼主一样的想法是在DELPHI中构造一个虚拟数据,然后在DBGRID中显示。。我也很想知道什么做。。。。。。。。。。。<br>.
 
用内存表控件就行了
 
Delphizhou、风铃夜思雨:<br>麻烦可以具体讲讲吗????<br><br>内在表控件我从来没有听说过,更别说用过了。<br>有劳两位了。
 
var<br>&nbsp;&nbsp;cds&nbsp;:&nbsp;TClientDataSet;<br>begin<br>&nbsp;&nbsp;cds&nbsp;:=&nbsp;TClientDataSet.Create(Self);<br>&nbsp;&nbsp;//构造字段<br>&nbsp;&nbsp;cds.FieldDefs.Add('ID',&nbsp;ftAutoInc);<br>&nbsp;&nbsp;cds.FieldDefs.Add('Name',&nbsp;ftString);<br>&nbsp;&nbsp;cds.FieldDefs.Add('Date',&nbsp;ftDate);<br>&nbsp;&nbsp;//生成内存数表<br>&nbsp;&nbsp;cds.CreateDataSet;<br>&nbsp;&nbsp;//追加数据<br>&nbsp;&nbsp;cds.Append;<br>&nbsp;&nbsp;cds.FieldByName('Name').Value&nbsp;:=&nbsp;'abc';<br>&nbsp;&nbsp;cds.FieldByName('Data').Value&nbsp;:=&nbsp;Now();<br>&nbsp;&nbsp;cds.Post;<br>&nbsp;&nbsp;//释放<br>&nbsp;&nbsp;cds.Free;<br>end;
 
如果字段长度确定就可以用A=(1070409)<br>select&nbsp;'20'+right(left(A,3),2)+'-'+left(right(A,4),2)+'-'+right(A,2)&nbsp;as&nbsp;NewA<br>----------------------<br>2007-04-09
 
谢谢楼上的朋友了。&nbsp;<br><br>有个疑问。&nbsp;<br>我想要这个做法,是因为我的一个界面上放了约30个DBLOOKUPCOMBOX,这样都从数据库中取数据,影响了速度。&nbsp;<br>因此我想用内存表来解决,可能需要构造约20个内存表左右,每个表仅2个字段,都是char类型,宽度不超过50。&nbsp;<br><br>大家帮我看看,伦理上来讲,会不会有什么问题??比如稳定性和速度方面。&nbsp;<br>再次表示感谢。
 
再补充下:<br>每个表的数据都不多,估计多的也就15条左右,少的就2条。<br>我可不可以在程序启动的时候就建立,这样方便需要用的时候立即就取出来,但会不会影响程序启动的速度呢?
 
建立视图<br>把转换语句写在视图中
 
cjion:<br>建立视图,没有办法显示下拉列表供修改时选择了呀?
 
如果你的&nbsp;DBLOOKUPCOMBOX&nbsp;的内容不常更新,就可以考虑通过类似于&nbsp;meta&nbsp;的办法一次性实现,甚至用普通&nbsp;combox实现。<br><br>meta表结构给你参考<br><br>meta_id,&nbsp;meta_owner,&nbsp;meta_key,&nbsp;meta_value<br>1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;abox&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;abc<br>2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;abox&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;abcd<br>3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bbox&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;abcde
 
clientdataset用多少个应该没有限制
 
rebirth:<br><br>您说的这个如何来使用呢?
 
赞成用clientdataset,别执行ApplyUpdates即可,爱怎么操作就怎么操作。
 
多人接受答案了。
 
后退
顶部