怎样将文本文件导入数据库?(100分)

  • 主题发起人 主题发起人 MaQi
  • 开始时间 开始时间
M

MaQi

Unregistered / Unconfirmed
GUEST, unregistred user!
各位:
本人欲use C++ Builder将以逗号分隔的文本文件导入到数据库中?How can i do?
Thanks
 
编程.我刚刚完成一个.
如是ORACLE,可用SQL*LOADER
我这是MS ACCESS 97
 
不可能吧,我只将TAB文本文件导入过数据库,象以别的形式的文本文件
导入到数据库,还没弄过,若谁有办法
请给我写信 datoncg1@21cn.com
 
自己编程解析TXT,分解为记录存入数据库
 
用ODBC建立文本型的数据源,然后利用工具导入到数据库.
 
都不能导入TEXT/IMAGE字段:-(
自己一点一点编程把,最安全。
BATCHMOVE最简单,看以前的问题有。
 
churchill的方法最好.

to cytown: 文本文件数据库有什么"TEXT/IMAGE"类型?
 
在ORACLE中当然可以用SQL*LOADER将','分隔的文件倒入到数据库中.
TAB 只是当作一个分隔符.
 
可以用CLIENTDATASET,逗号分割就是CSV文件,CLIENTDATASET可以识别
在将他BATCHMOVE到你要的数据库中
 
cakk: 文本文件可以从数据库中得到text类型字段。
 
你所说的“以逗号分隔的文本文件”是指各个记录之间用逗号分割,
还是指各个字段之间用逗号分割?

如果各个字段之间用逗号分割,那么各个记录之间又用什么分割呢?
反过来,如果各个记录之间用逗号分割,那么各个字段之间又用什么分割呢?

假如这种问题需要编程解决,我想你也不会上这里来问了。
我假定你的文本文件各记录用逗号分隔,每条记录只有一个字段(即无字段分割)。
我的办法:
  1。用任何一种编辑工具将源文本文件中的逗号全部替换成“0DH 0AH”;
  2。建立一个BDE别名,TYPE为“STANDARD”,PATH为文本文件的路径,
    DEFAULT DRIVER为“ASCIIDRV”(关键在此);
  3。根据你的需要,建立目标别名;
  4。用“DataPump”将源别名中的数据倒入目标别名。
 
C++ Builder道没用过,但可用Delphi给个类Delphi程序段,望参考!

Table1.Open //数据库
Table1.Edit;
AssignFile(FilVar, '文本文件‘);
Reset(FilVar);
While not Eof(FilVar) Do
Begin
x1 = Readln(FilVar, Var1, Var2, ..., Varn);
Table1.Append;
FieldValues['字段1'] = Var1;
FieldValues['字段2'] = Var2;
..............
FieldValues['字段n'] = Varn;

Table1.post;
End;
CloseFile(FilVar);
Table1.Close;
你再添上你的内容即可!
 
我做过从文本文件到入数据库,文本以‘|’为分隔符,倒入到SQL中
本人先编一段小程序将‘|’分解,在用SQL插入小程序如下:
procedure Dispatchs(var s:string);
var
Len:Integer;
i,j:Integer;
s1:string;
StringList:TStringList;
begin
StringList:=TstringList.Create;
Len:=Length(S);
j:=1;
For i:=1 to Len do
if s = #44 then
begin
s1:=copy(s,j,(i-j));
StringList.Add(s1);
j:=i+1;
end;
end;
余下问题想必你会编写,在下也不多说了,不过可记得给我加分!
 
其实根本不用写什么代码,直接添加一个文本文件ODBC数据源, 驱动选择
Microsoft TEXT Driver即可. 添加后按"Options"按钮还可以定义字段.

定义好数据源之后,就和普通数据库一样操作,根本不用处理数据格式.
 
hehe,cAkk的办法和我的有异曲同工之妙!
我用BDE,你用ODBC。
 
就是,逗号分割的本来就是标准的“文本文件数据库”:-)
BCB/DELPHI都支持的,在TABLE的TABLENAME里直接输入文本文件名就可以打开
以后就和导其它数据库一样的说。

MSSQL 有 BKCOPY。
 
cAkk:
  你的办法仍只能解决“字段分割用逗号”,
不能解决“记录分割用逗号”,不论ODBC还是BDE,
都不能设置“记录分隔符”,必须为回车(0DH 0AH),
所以不论ODBC还是BDE,我前述的方法中的第一步都不能省,
除非他本来就是想解决“字段分割用逗号”。
 
怀蟑螂: 不可能有"记录和字段分割用逗号", 谁会生成这样不规范的文本格式,
除非初学者.
本题的意思肯定是"字段分割用逗号". :-)
 
cAkk:
  我是说"记录分割 或 或 或 字段分割用逗号",
不是说"记录分割 和 和 和 字段分割用逗号",
凭什么记录分割就不能用逗号、字段分割就不能用回车,
否则就一定是“初学者初学者初学者初学者初学者”呢???!!!
只要他工作需要,源文件完全可能是任何格式,
是不是他就因此不工作了呢?
heng heng!!!
 
坏蟑螂真有性格,我喜欢.

不过争论归争论,因为"标准文本数据库"格式不是这样的.
作为一个程序员,除非生成的东西只是给自己用, 否则应最大限度地遵循标准.
为什么产业界的"工业标准"之争这么激烈,因为不标准就意味着被淘汰.
 
后退
顶部