有没有sql语句对带有一定格式的txt文件导入表中?

wzs 2001-02-01 04:08:00
...全文
267 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
ether 2001-02-06
  • 打赏
  • 举报
回复
这个要看你的数据来源了,如果是自己生成的,自然知道每个字段的类型,可以通过
StrToInt()或StrToIntDef之类函数作转换。
也可以参考bigfox的方法,不过您认为“123”是整型还是浮点性?“HELLO!”是
varchar还是memo? :)
如果你的文件格式象上面的举例,根本无法准确识别类型的,只能靠自己判断。
bigfox 2001-02-05
  • 打赏
  • 举报
回复
ether的方法可行,你可以增加地一些功能把文本格式变成如下:
'123',645,true,'sdfhgs','sadfjas'
这样不就可以分清数据类型了吗
只不过要在ether提供的函数中加一些区分'的函数即可
wzs 2001-02-05
  • 打赏
  • 举报
回复
to :ether(void) 你这种做法是可以,不过有一点小问题,你这种方法能确定字段对应的文本数据的类型是一致的吗?也就是说如:
字段1//类型是int
文本数据1='123'
但你在做把"字段1='123'"时必须判断"字段1"的数据类型这种做法较麻烦万一"文本数据1"的值是'123a'来说那还要判断"文本数据1"的数据类型.所以我现在要的是一种较简单的做法,有没有更好方法来解决这种事情?
我很感谢大家给我提这么多意见,小弟在这谢谢了!
ether 2001-02-03
  • 打赏
  • 举报
回复
自己做个函数吧。举个例:
procedure TForm1.Button1Click(Sender: TObject);
var
Src, Data: TStrings;
i, p: Integer;
s: String;
begin
Src := TStringList.Create;
Src.Assign(Memo1.Lines); // Src.Loadfromfile也行,可以用你上面的例试。
Data := TStringList.Create;
for i:=0 to Src.Count-1 do
begin
Data.Clear;
s := Src[i];
while Length(s)>0 do
begin
p := Pos(',', s);
if p<1 then
begin
Data.Add(s);
break;
end;
Data.Add(Copy(s, 1, p-1));
s := Copy(s, p+1, MaxInt);
end;
ShowMessage(Data.Text); // 现在Data的每行就是一字段了,可以写数据库。
end;
Src.Free;
Data.Free;
end;
AChung666 2001-02-03
  • 打赏
  • 举报
回复
有一个DBCVT控件可将 ASCII 文字档转入或转出 Paradox Table 的单元,即你所想实现的功能.
liuchcn 2001-02-02
  • 打赏
  • 举报
回复
只能自己写代码来生成sql。
a_fee 2001-02-02
  • 打赏
  • 举报
回复
delphi 可以直接读文本格式的数据。一个是概要文件*.sch,一个是数据文件*.txt。

[TableName]
filetype=Fixed
charset=ascII
Field1=FieldName,Field Type,size,..
field2=num,MUMBER,16,
...

数据文件:
aa,123,kkk,(bolob),13134,20001-1-1
adaa,23,kk,(bolob),3134,20001-11-16

后面用TTable组件。

wzs 2001-02-02
  • 打赏
  • 举报
回复
to:illcat(沙龙巴斯) 兄!我指的导入"较简单"是在DELPHI程序中进行的
illcat 2001-02-02
  • 打赏
  • 举报
回复
用PowerBuilder就可以办到啊,用Tab键分隔,我以前倒数据都是这么干的
wzs 2001-02-02
  • 打赏
  • 举报
回复
如果用SQL无法做到,那用哪种方法较简单?
wzs 2001-02-01
  • 打赏
  • 举报
回复
to:ether(void) 兄
你误会我的意思了!我指的是多个字段由一个文本文件导入到表,这个文本文件是有一定规则的,如:
aa,123,kkk,(bolob),13134,20001-1-1
adaa,23,kk,(bolob),3134,20001-11-16
ether 2001-02-01
  • 打赏
  • 举报
回复
入:
(Table1.fieldbyname('MyBlobField') as TBLOBField).loadfromfile('c:\aa.txt');
出:
(Table1.fieldbyname('MyBlobField') as TBLOBField).savetofile('c:\aa.txt');

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧