全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1261
推到 Plurk!
推到 Facebook!

如何将文件中的数据insert进入本地数据库表

尚未結案
nimo
一般會員


發表:5
回覆:9
積分:2
註冊:2007-11-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-11-20 09:48:02 IP:222.129.xxx.xxx 訂閱
各位大侠:

问题:有三个txt文件,每个文件包含有Insert子句,如何将这些语句插入到本地数据库呢?

1.txt内容如下:
insert into t1 values('s3','aa','m1');
insert into t1 values('s1','3b','ba');
insert into t1 values('s1','2ra','c2');

2.txt内容如下:
insert into t2 values('s1','aa','m1');
insert into t2 values('s2','aa','ba');
insert into t2 values('s2','2ra','c2');

3.txt内容如下:
insert into t3 values('s1','aa','n8');
insert into t3 values('s3','2ra','3d');
insert into t3 values('s2','2ra','5m');

我希望的结果:
1、将上述三个文件分别插入本地数据库三个表t1,t2,t3(能否就在本地界面通过按钮命令创建这三张表?如果麻烦,创建表就算了,可以在数据库后台手工建立);
2、在第一步实现后,能否在本程序界面上通过按钮命令(就象在数据库系统中通过SQL语句那样,只不过,是否能够在本界面上实现),实现上述3张表的查询?即合成一张总表T(三列字段属性都是字符型),包括上述三张表的内容?最终得到如下结果:
T(s1, 3b, ba)
T(s1, 2ra, c2)
T(s1, aa, m1)
T(s1, aa, n8)
T(s2, aa, ba)
T(s2, 2ra, c2)
T(s2, 2ra, 5m)
T(s3, aa, m1)
T(s3, 2ra, 3d)

这个问题,我想了解的是,如何实现和本地数据库之间的交互.。

谢谢!



編輯記錄
nimo 重新編輯於 2007-11-20 09:53:00, 註解 無‧
JustinShen
中階會員


發表:22
回覆:104
積分:80
註冊:2003-09-20

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-11-20 12:25:49 IP:222.188.xxx.xxx 訂閱
这个问题很简单,只要你所用的本地数据库支持SQL语言规范,那么就可以实现。以使用ADO组件(dbGo或ADODB)为例,建立一个TADOConnection连接到你的本地数据库,再建立一个TADOCommand连接到前面所建的TADOConnection上。

在程序里面构建创建数据表的命令 CREATE TABLE ... (具体使用可参考SQL规范),在使用一个TStrings对象装入指定的文本文件(LoadFromFile函数),插入合并前面构建的 CREATE TABLE ... 命令,再追加一行GO,最后导入并执行TADOCommand即可。全部使用代码大概如下:

var
conn: TADOConnection;
comm: TADOCommand;
aSQL: TStrings;
...
begin
conn:=TADOConnection.Create(self);
conn.ConnectionString:='XXXXXXXXXXXXXXXXXXXXXXXXXX'; //这里需要预先知道数据库类型及连接方式等
conn.open;
comm:=TADOCommand.Create(self);
comm.connection:=conn;
aSQL:=TStringList.Create;
aSQL.LoadFromFile('file1.txt');
aSQL.Insert(0,BuildCreateSQL('',''));
aSQL.append('GO;');
//如何构建CREATE TABLE 语句根据你的需要作函数,这里用BuildCreateSQL()函数名代替,其中的参数也需要设定
comm.CommandText:=aSQL.Text;
comm.execute;
end;
------
====================
我为一切作努力!
Justin Shen

系統時間:2024-05-05 9:58:48
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!