+ -
当前位置:首页 → 问答吧 → 关于数据保存的问题???

关于数据保存的问题???

时间:2011-12-12

来源:互联网

我用四个通道采集数据,在memo控件里显示,数据格式如下(每两个数据之间相隔两个空格,并且数据在memo中自动换行):
U1=0.0000278V U2=0.0000233V U3=0.0000108V U4=0.0000042V U1=0.0000247V U2=... U3=... U4=...如此循环下去
现在我想将memo中的数据分门别类的保存到.db数据库当中,以便以后调用。
保存的格式如下:
  U1 U2 U3 U4
  0.0000278V 0.0000233V 0.0000108V 0.0000042V  
  0.0000247V ... ... ...
  . . . .
  . . . .
  . . . .

   
请问,那位大神出出主意,怎么实现?

作者: yunyunwuyi   发布时间: 2011-12-12

建个表分别建这四个字段,处理U1=0.0000278V U2=0.0000233V U3=0.0000108V U4=0.0000042V U1=0.0000247V U2=... U3=... U4=...这个字符串就可以了。

作者: mrwangfei   发布时间: 2011-12-12

如果你的格式是固定的话,可以这样
var
  s:string;
begin
s:=Trim(Memo1.text);
s:=stringreplace(s,' U1=',''' union all select ''',[rfReplaceAll]);
s:=stringreplace(s,' U2=',''',''',[rfReplaceAll]);
s:=stringreplace(s,' U3=',''',''',[rfReplaceAll]);
s:=stringreplace(s,' U4=',''',''',[rfReplaceAll]);
s:='Insert into t(U1,U2,U3,U4) select '''+Copy(s,4,length(s))+'''';
Query1.Close;
Query1.SQL.Text:=s;
Query1.ExecSQL;

作者: kaikai_kk   发布时间: 2011-12-12

2L的思路相当值得学习啊,我以前只会傻傻的处理字符串,不过这样操作有一个漏洞,虽然string可以不限长度,但是使用ado控件的话sql语句过长有时候是会出问题的


给LZ另外个思路,
要求严格控制字符串的格式就是u1,u2,u3,u4之间用空格区分,且字符串本身没有空格,这样你先把memo1中 "空格U1="替换成 "回车换行u1=",然后memo1可以直接保存成文本,之后可以使用access导入文本的方式,使用空格当区分符导入数据库,其实使用sql也可以把文本导入数据库,不过书写的格式我忘记了,和excel类似
另外也可以用本办法纯字符串处理,利用空格做区分符转成字符串列表 然后再使用sql语句一行行插入

作者: funxu   发布时间: 2011-12-12