记录生成文本(50分)

  • 主题发起人 主题发起人 WTO
  • 开始时间 开始时间
W

WTO

Unregistered / Unconfirmed
GUEST, unregistred user!
如何把表中的某条记录卸成文本文件?(我用的是ORACLE)
 
设一个结构将每个字段的内容取出来存到这个结构中。然后再存到文件中就方便了。
 
with Query do
var
S:String;
StringList:TStringList;
begin
...
StringList:=TStringList.Create
First;
while not eof do
begin
S:='';
for I:=0 to Fields.Count-1 do
S:=S+#9+Fields.AsString
//字段间以Tab分隔
if S<>'' then
System.Delete(S,1,1)
//删除最前面的Tab
StringList.Add(S)
//加入到StringList中
Next
//下一条记录
end;
StringList.SaveToFile('C:/黑老板日记/本月宰人记录.txt');
StringList.Free;
end;
 
to Fencer:

How to do ?
 
<B>勘误表</B>
原文:
with Query do
var
S:String;
StringList:TStringList;
begin
...
end;

应修正为:
var
S:String;
StringList:TStringList;
begin
with Query do
begin
...
end;
end;

写得太快,Sorry~~~
 
蚯蚓说的对,太厉害了
 
pwpengwei:
你的马屁功夫也不错啊
我都快飘起来了~~~

<B>舒坦!</>
 
看明白了。Thanks a lot.

蚯蚓兄:
附加一问题:如何得到DBNAVIGATOR 中的按扭的 ENABLE 属性。
随后献上50 大洋。



 
//DBCtrls.pas
type
TDBNavigator = class (TCustomPanel)
...
protected
<font color=red>Buttons: array[TNavigateBtn] of TNavButton;</font>
...
end;

通过Buttons即可访问所有按纽,但因为Buttons定义在protected部分,
因此无法直接访问,

告诉你一个<B>龌龊的办法</B>:

type
//继承一下,什么都不干
TMyDBNavigator=class(TDBNavigator)
end;

然后你就可以在你的程序中这样访问了:
...
DBNavigator1:TDBNavigator;
...
begin
...<B>TMyDBNavigator(DBNavigator1).Buttons</B>...
end;

怎么样?有什么感想??
不到万不得已,不要这么干~~~~
 
非常感谢 再感谢 然后在加平方。
马上调试。。。。
随后就给银子。。。。
 
习习,我有一简单方法把数据变成文本,不过我<b>没有试验</b>过:
query1.GetCurrentRecord可以把当前纪录变成phar, 你只要strpas就可以了
 
GetCurrentRecord把当前记录取到Buffer里而已,
只是数据的一个拷贝啊,有什么用?

人家要写到文本文件
 
至少不用一个字段一个字段转换了,每条纪录只处理一次,应该快很多.
 
得寸进尺,再问一问题:
录入数据后,有时忘了存盘,就退出了。能否在退出前给出提示,
或使窗口不能关掉,除非[回退]或[保存]。
 
>>有时忘了存盘
>>能否在退出前给出提示

在Form的OnCloseQuery事件中写:
begin
with Query do
if State in dsEditModes then //判断DataSet当前状态
begin
MessageBox(Self.Handle,'当前记录未保存!','警告',
MB_IconWarning or MB_OK)
//警告
CanClose:=False
//不允许退出
end;
end;

ps:你这50分也太TM难了~~~
 
习习,这50分该蚯蚓得.
 
cAkk:
感冒了吗;-)

老是漏风:)
 
amo: 没. 不过突然想起这个象声词,觉得挺好玩的,习习. :-)
 
糟糕 ! 呜呼 !
我的三轮鼠标一转,把分给错了 ,应给蚯蚓,却给了别人。。。。

哇哑哑.....

斑竹,想想办法,不然我只好再开一个题目了。

蚯蚓兄,我在这里拱手。。。。。。。 :~(

 
后退
顶部