100 求设计思路(100分)

  • 主题发起人 主题发起人 smart_jun
  • 开始时间 开始时间
S

smart_jun

Unregistered / Unconfirmed
GUEST, unregistred user!
1. 能够实现数据库导入Excel
2. 能够实现Excel导入数据库
3. 能够实现将修改后的Excel数据更新到数据库中。
4. 数据库格式非固定格式.(即数据库字段不固定)
数据库包括(SQL2000,Oracle,Excel,Access,Vfp,Dbase等)
 
对于1,2,3条,你可以把excel当成数据库打开。这样可以容易实现。使用这样方式打开excel的贴子在这里很多,你可以搜索一下。
对于第4,你需要进行字段匹配,包括字段名称和类型,没有的增加。
 
我个人觉得数据库如果在运行的过程中需要修改表结构,那很容易造成系统出问题。前边的三条都很简单就可以处理了,但是第四条就有难度了,
 
第4条我做过,用来对系统进行升级的时候使用。有时候客户有一些特殊的要求,原来的系统结构已经没法满足的时候,只有对数据库做调整,但是又不想每次手工处理,就做也一个通用的程序,把老系统的数据库和新系统的数据库进行对比,不对的马上进行调整。
 
问题: 异构数据库之间完全可以用SQL语句导数据。大家抛弃BatchMove吧 如果觉得好请Up一下,如果觉得不好也请Up一下 ( 积分: 1 )
分类: 数据库-C/S型

来自: 碧血剑, 时间: 2003-03-18 16:33:00, ID: 1691966
告诉你一个最快的方法,用SQLServer连接DBF
在SQLServer中执行
SELECT * into bmk
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="e:/share";User ID=Admin;Password=;Extended properties=dBase 5.0')...bmk
这样就可以把e:/share中的bmk.dbf表导入到Sqlserver中,
速度是最快的
把压箱底的方法都告诉大家
在Form上放一个ADOConnection,连结指向目标Access库
比如txt文件在c:/temp/aaaa.txt
就执行
ADOConnection.Connected := True;
ADOConnection.Execute('Select * Into abcd From [Text;Database=c:/temp].aaaa.txt');
就一切Ok了,这个方法一定行的,我好不容易才研究出来的
有了这两个例子,异构数据库之间导数据的问题就举一反三,迎刃而解了。

把Excel导入到Access中,同txt类似
select * into <table name> from [excel 8.0;database=<filename>].[<sheetname>$]

我最讨厌别人用BatchMove导数据了,明明一个SQL的事情,偏要。。。
我的目标是让大家抛弃BatchMove

来自: bbs-wqt, 时间: 2003-03-18 16:45:00, ID: 1692009
谢谢!!!!

来自: chshanghai, 时间: 2003-03-18 17:34:00, ID: 1692195
不错,不错,刚试过, 很好,很好很好很好很好很好




来自: rogue_xu, 时间: 2003-03-18 19:52:00, ID: 1692532
從哪裡學到的,敬仰中!

来自: chshanghai, 时间: 2003-03-19 17:42:00, ID: 1695286
不错,是不错, 不过对foxpro 6.0中有些字段是打不开的. 像foxpro 中datetime 类型的字段.

来自: bbs-wqt, 时间: 2003-03-19 17:45:00, ID: 1695291
佩服!好!不错!很棒!
帅呆了![h4][green]酷逼乐!![/green][/h4][:D][:(!]

来自: 碧血剑, 时间: 2003-03-19 17:53:00, ID: 1695299
to: chshanghai
对于VFP6.0,那就要换Extended properties属性了
理论上只要是ODBC能实现连结的数据库的,都可以的
当然不是所有的数据库了:)

来自: txm, 时间: 2003-03-19 18:19:00, ID: 1695396
好!早几天看到就好多了[:D]
不过现在也不迟的[^]
谢谢!!!

来自: dhl2001, 时间: 2003-03-19 18:22:00, ID: 1695403
第二个方法很棒,


来自: litong, 时间: 2003-03-19 18:22:00, ID: 1695404
good

来自: 风姿, 时间: 2003-03-19 18:30:00, ID: 1695420
hao .佩服。

来自: coolfun, 时间: 2003-03-19 18:45:00, ID: 1695443
真的很佩服你啊。前几天还寻找这样的方法都没找到。昨天只能自己用循环搞定了,不过
也不晚啊,马上换代码,哈哈。

来自: coolfun, 时间: 2003-03-19 18:48:00, ID: 1695448
不过还想问一下,怎么用SQL语句把ACCESS表导出TXT文件中?

来自: sky0061, 时间: 2003-03-19 21:43:00, ID: 1695757
试试先,如果可能就太棒了。
不管怎么样,谢谢楼主先,这是个好经验。

来自: 斗士, 时间: 2003-03-20 0:45:00, ID: 1695961
速度还可以,28858行数据花费46秒;
不过这行SQL是否可以在程序中运行,SQL.Add(),ExecSQL;
另如何把SQL Server的表导出到Access、Text、Dbf。

来自: 碧血剑, 时间: 2003-03-20 8:08:00, ID: 1696027
to :coolfun
ADOConnection.Execute('Select * Into [Text;Database=c:/temp].aaaa.txt From aaaa');
to: :斗士
当然可以在程序中运行
SQL Server表导出和txt导入一个道理
基本上都是用Jet4.0 和 ODBC连结实现
先用用Jet4.0连结dbf,access,txt然后利用SQL语句导出导入
在此我就不详细说了,一句话,都可以的
列出连结串属性Extended properties,
DBase 5.0
DBASE IV
FoxPro 3.0
Paradox 7.X
Excel 8.0
text;HDR=YES;FMT=Delimited


来自: chshanghai, 时间: 2003-03-20 8:49:00, ID: 1696146
to 楼主;
我以前用过openquery 这个过程. 感觉与openquery 差不多.
想问一下 opendatasource 与 openquery 有什么区别? 谢谢.

还有 opendatasource 是哪里的. 好像我在帮助里没有找到.


来自: 碧血剑, 时间: 2003-03-20 8:54:00, ID: 1696169
to
openquery 需要先建立链接服务器
openrowset和opendatasource不用,在SQLServer联机帮助都可以查到

来自: ninsen, 时间: 2003-03-20 10:14:00, ID: 1696505
TO 碧血剑
仁兄果然是高手,不但技术好而且还乐意和别人分享知识,我最佩服这种人。请问仁兄
有OICQ吗?可否让小弟加你为好友,遇到问题也可以请仁兄请教。
可能小弟头脑比较笨,按照你的方法研究了很久也没能研究出怎么样把Excel工作表导
出为mdb或sql数据库,请仁兄指教,不胜感激。

来自: 碧血剑, 时间: 2003-03-20 10:24:00, ID: 1696544
我刚才试验成功的
Excel联接ADO串
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/temp/a.xls;Extended
Properties="Excel 8.0;HDR=Yes;";Persist Security Info=False

SQLServer从Excel取数
SELECT *
FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="C:/temp/b.xls";Extended Properties="Excel 5.0;HDR=Yes;";Persist Security Info=False')...sheet1$

我的QQ号连我都不记得,不经常用
Email: jl1999@163.net


来自: coolfun, 时间: 2003-03-20 11:29:00, ID: 1696833
TO 碧血剑:
高手就是高手,哈哈。而且你愿意把技术与大家分享,可敬。

可敬的高手!!!!!!

来自: 斗士, 时间: 2003-03-20 11:36:00, ID: 1696857
从SQL Server导出时,用以下语句:
ADOConnection.Execute('Select * Into [Text;Database=c:/temp].aaaa.txt From aaaa');
报错:[c:/temp].aaaa.txt 数据库不存在;
连接SQL Server的ADOConnection使用Microsoft OLE DB Provider for SQL Server;
改用Access导出Text,ADOConnection用Jet 4.0,可以成功。什么原因?


来自: 原野飞侠, 时间: 2003-03-20 11:36:00, ID: 1696858


来自: 碧血剑, 时间: 2003-03-20 11:54:00, ID: 1696914
:斗士
那就是Access导出到文本的
有两种方法
1。SQLServer先建立链接服务器,然后导出,
2。ADO连接指向Txt,导出


来自: 斗士, 时间: 2003-03-20 12:01:00, ID: 1696941
:大侠碧血剑
1、SQL Server 导出Access、Dbf、Excel、Text等;
2、Access导出Excel、Dbf、SQL Server;
能否详细一点叙述,有代码最好,谢谢!

来自: xuefeiyang, 时间: 2003-03-20 12:13:00, ID: 1696968
up

来自: 唐佐平, 时间: 2003-03-20 12:51:00, ID: 1697077
Txt文件导入Sql Server怎么写?

来自: maplesw, 时间: 2003-03-20 12:57:00, ID: 1697106
高手就是高手!能与大家一起分享精品劳动成果!

来自: zhang_yz6666, 时间: 2003-03-20 13:50:00, ID: 1697330
高手就是高手!能与大家一起分享精品劳动成果!
向你致敬!


来自: qrenj, 时间: 2003-03-20 14:22:00, ID: 1697443
……
楼主,要是ACCESS数据导到INFORMIX或者是ORACLE里面则么做啊 还不是BATCHMOVE?

来自: 碧血剑, 时间: 2003-03-20 14:31:00, ID: 1697475
txt导入SQLServer
select * from OpenRowset('MSDASQL', 'Driver={Microsoft Text Driver (*.txt; *.csv)};
DefaultDir=c:/temp;','select * from aaaa.txt')

to qrenj
Access导入ORACLE肯定可以
INFORMIX我没用过
我说过了,只要是微软支持的OLE DB和ODBC连接的
一定可以

来自: ufo!, 时间: 2003-03-20 19:50:00, ID: 1698513
谢谢楼主。

来自: www.www, 时间: 2003-03-21 10:18:00, ID: 1699555
good

来自: dirk, 时间: 2003-03-21 10:41:00, ID: 1699670
这种方法我四年前就发现了,不过那时还没用delphi,在Access中使用的,最近有个人问了
类似的问题,我回答了,好像也没什么人关注嘛![:(]

来自: dreamfly1024, 时间: 2003-03-21 10:53:00, ID: 1699729
[:)]

来自: 唐佐平, 时间: 2003-03-21 11:23:00, ID: 1699883
txt文件中每个字段的分割符是什么?

来自: 碧血剑, 时间: 2003-03-21 11:46:00, ID: 1699985
to:唐佐平
默认逗号或空格,可以在连接串中指定

来自: pldu, 时间: 2003-03-21 15:30:00, ID: 1700903
第二种方法从sql server导出到access如何写

来自: 碧血剑, 时间: 2003-03-22 9:24:00, ID: 1702318
我都说了要举一反三的,可是还是有人问类似的问题,算了,再贴两个例子
c:/temp/aaa.dbf to Access,
ADOConnection 指向Access
语句是 select * into bbb from aaa in 'c:/temp' 'dbase 5.0;'

sql server导出到access
ADOConnection 指向Access
SELECT * into table FROM Tab1 IN [ODBC]
[ODBC;Driver=SQL Server;UID=sa;PWD=;Server=127.0.0.1;DataBase=Demo;]


来自: jianlei, 时间: 2003-03-22 10:56:00, ID: 1702482
是否只有ADOConnection连接目的地支持SELECT INTO语句才能行,好象在Interbase中不行,请“碧血剑”兄明示!

来自: 碧血剑, 时间: 2003-03-22 15:01:00, ID: 1702882
Interbase我没用过:) select into 不行还有insert into呀
好像她只支持BDE吧
如果不支持ODBC,应该就不行

来自: ninsen, 时间: 2003-03-22 15:10:00, ID: 1702894
to 碧血剑
谢谢仁兄帮我解决了那么多的问题,非常感谢。小弟在这方面还是个初学者,希望能和
仁兄做个朋友,不知仁兄意下如何。
MDB和DBF转换为EXCEL,EXCEL转换为MDB或者DBF,设置主键小弟在仁兄的帮助下已经解
决,但还有一问题不能解决,那就是EXCEL,MDB转换为SQL无法解决。请仁兄指点一下,不
胜感激。因那边我提问题想结贴,所以在这里提问。

来自: 碧血剑, 时间: 2003-03-22 15:46:00, ID: 1702976
to ninsen
看一下SQLServer联机帮助的
OpenDataSource和OpenRowSet函数
有具体的例子

来自: jump8, 时间: 2003-03-22 15:58:00, ID: 1703003
楼主你好!我在我提出的同一个问题中已给你加分了。
但在VFP6.0转换时还是会出现 chshanghai 所说的datetime 类型的字段不能转换。
我试过DBase 5.0、DBASE IV、FoxPro 3.0等等Extended properties属性都不行,
请问在还有哪些Extended properties属性可以使用?谢谢!


来自: 碧血剑, 时间: 2003-03-22 16:12:00, ID: 1703043
我也要到MSDN上才能查到,可是从今天起我可能会比较忙
现在要下线了,我可是用小猫猫上网的呀
你先用VFP的create table 还是 select into 具体我忘了:)
把格式转为dabse的,再导数据
试试


来自: ninsen, 时间: 2003-03-22 16:16:00, ID: 1703047
to 碧血剑
小弟比较笨,看了帮助以后还是不能解决问题,请仁兄给出具体操作步骤发给我的
信箱吧,chenninsen@163.net,麻烦了。EXCEL或者MDB和SQL互换,在DELPHI中写程序。

来自: l_q28, 时间: 2003-03-22 16:25:00, ID: 1703073
UP

来自: jump8, 时间: 2003-03-22 16:39:00, ID: 1703103
to 碧血剑
我试过了,把格式转为dabse的再导数据是可以的。但我要在VFP生成的数据中取出数据
上传到MS-SQL2000,所以还是要用VFP6.0的格式,MSDN能找到吗,我好象没有看到的?麻烦
你有空的时候帮我找找看,谢谢!


来自: fyyx2002, 时间: 2003-03-22 17:18:00, ID: 1703190
===============》
真希望每个人都能象楼主那样把自己摸索的经验和过程拿出来和大家分享探讨,中国的软件
事业就一定会繁荣起来!这样才是真正的中国精神,不要在做敝帚自珍的事了!团结起来
为了你我共同的进步,为了中国软件事业的腾飞!让我们能以自己是中国人而自豪!
=====================》

来自: xa_t, 时间: 2003-03-23 14:27:00, ID: 1704141
请问如果要update/insert,你如何解决呢???[?][?][?]

来自: 碧血剑, 时间: 2003-03-23 18:17:00, ID: 1704486
to :xa_t 我晕了
把select 语句改成insert into或update语句呀

来自: lovedp, 时间: 2003-03-23 19:34:00, ID: 1704578
up

来自: kongl, 时间: 2003-03-24 13:22:00, ID: 1706007
连接excel不好用啊,用帮助中的例子也不成功.


来自: coolfun, 时间: 2003-03-25 14:35:00, ID: 1708966
to 碧血剑
再请教一个问题,我这里要求要ACCESS的数据表导出到TXT文件中,要求以TAB来分隔每
个字段,请问怎么实现。

来自: 碧血剑, 时间: 2003-03-26 8:27:00, ID: 1710470
应该是这样吧
SELECT * INTO [Text;DATABASE=文本文件路径;TabDelimited].[文本文件名称] FROM Table

来自: gamegirl, 时间: 2003-03-26 8:31:00, ID: 1710480
谢谢

来自: lwz18, 时间: 2003-03-26 15:54:00, ID: 1712378
[?]请问visual foxpro 6.0 怎么导到sql server 2000去?
我执行SELECT * into rqjj
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source=e:/rqjj;User ID=sa;Password=linkcm;Extended properties=visual foxpro 6.0')...rqjj
select * from rqjj
提示如下:服务器: 消息 7399,级别 16,状态 1,行 1
OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 报错。验证失败。
[OLE/DB provider returned message: 无法启动应用程序。工作组信息文件丢失,或是已被其它用户以独占方式打开。]
OLE DB 错误跟踪[OLE/DB Provider 'Microsoft.Jet.OLEDB.4.0' IDBInitialize::Initialize returned 0x80040e4d: 验证失败。]。


来自: coolfun, 时间: 2003-03-26 18:37:00, ID: 1712914
TO:碧血剑

来自:碧血剑, 时间:2003-3-23 18:17:00, ID:1704486
to :xa_t 我晕了
把select 语句改成insert into或update语句呀

用select 语句是可以的,但是用insert into的时候,就说insert into语法错误,请你
帮忙。随便再问一下,access的表怎么样导出来dbase5.0中。



来自: wr960204, 时间: 2003-03-28 16:18:00, ID: 1718748
挺好的

来自: zhaq, 时间: 2003-03-30 1:11:00, ID: 1721697
老兄,我想把分割符为‘|’的文本文件导入到sqlserver中,怎么写语句?并且文本文件在客户机上
,我是不是还要把文本文件拷到sqlserver服务器上才能导入?倒入前是不是要到odbc里配置
文本文件,会否则提示你列名与表定义不符?谢谢碧血剑给够解释。

来自: jinyfboss, 时间: 2003-03-30 0:12:00, ID: 1721716
碧血剑:
佩服!佩服!敬仰!敬仰!难得!难得[:)]

来自: myjane, 时间: 2003-03-31 11:45:00, ID: 1724094
TO:碧血剑
VTP 6.0 如何导到ACCESS中????

来自: 任豆豆, 时间: 2003-03-31 11:49:00, ID: 1724109
good

来自: lovedp, 时间: 2003-03-31 11:59:00, ID: 1724144
UP!俺也试试!

来自: kypansky, 时间: 2003-03-31 17:26:00, ID: 1725537
SQL Server数据导到Excel数据库怎么做呀?能说详细点吗?

来自: 碧血剑, 时间: 2003-03-31 19:19:00, ID: 1725855
to :kypansky
sql server导出到excel和sql server导出到Access是一样的
ADOConnection 指向excel, 用Jet4.0 ,Extended properties设为Excel 8.0
SELECT * into table FROM Tab1 IN [ODBC]
[ODBC;Driver=SQL Server;UID=sa;PWD=;Server=127.0.0.1;DataBase=Demo;]



来自: kypansky, 时间: 2003-03-31 22:56:00, ID: 1726289
十分感谢碧血剑的回答.我使用时,不知道哪地方没有设好?出现死等的状态.你帮我看一下下面设置对吗?
在Form中设置ADOConnection1的联接属性如下(test.xls:为我要将数据导入文件名.):
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/TEMP/test.xls;Extended Properties=Excel 8.0
程序如下:
procedure TFormMain.Button1Click(Sender: TObject);
begin
ADOConnection1.Connected ;
ADOConnection1.Execute ('SELECT * into test01 FROM Fund IN [ODBC] [ODBC;Driver=SQL Server;UID=admin;PWD=;Server=(lacal);DataBase=CMBXMDM;]');
end;
但执行时,是死等(死机)状态.查看进程:未响应
谢谢!



来自: nokia33503350, 时间: 2003-05-27 10:44:00, ID: 1726748
说说vfp6.0的自由表如何快速导入到access2000中。

来自: 碧血剑, 时间: 2003-04-01 16:55:00, ID: 1728422
:kypansky,
我自己试了一下,没问题的
我的连接串
Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=C:/temp/a.xls;Mode=Share Deny None;Extended Properties="Excel 8.0;HDR=Yes;";Persist Security Info=False;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=34;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False
语句
ADOConnection1.Execute ('SELECT * into test01 FROM vda1 IN [ODBC] [ODBC;Driver=SQL Server;UID=sa;PWD=;Server=jl;DataBase=ynxf;]');

估计可能是你的SQLServer的问题


来自: unidragon, 时间: 2003-04-05 17:03:00, ID: 1741095
up!!!

来自: Radeon, 时间: 2003-04-08 23:57:00, ID: 1750666
to 碧血剑:
谢谢!我摸了一个月,也没有搞定这些事。现在得到了你的指点,真是太感谢了。
碧血剑,delphibbs good。

来自: jsjjohn, 时间: 2003-04-09 8:50:00, ID: 1750935
佩服,好方法。交个朋友:kuangke@sina.com

来自: qinwq, 时间: 2003-04-09 9:03:00, ID: 1750977
真是高手,帮我解决大问题了。谢谢你。

来自: qinwq, 时间: 2003-04-09 9:37:00, ID: 1751129
to 碧血剑:
能否告诉我access转dbf,excel的办法?
谢谢!

来自: hmzz, 时间: 2003-04-09 11:35:00, ID: 1751667
为什么我的是这样:
SELECT *
FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="d:/Book1.xls";Extended Properties="Excel 5.0;HDR=Yes;";Persist Security Info=False')...sheet1$
-------------------------------------------------

服务器: 消息 7399,级别 16,状态 1,行 1
OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 报错。提供程序未给出有关错误的任何信息。


来自: hmzz, 时间: 2003-04-09 11:37:00, ID: 1751676
哦,应该是8.0才对

来自: DELPHI鸟, 时间: 2003-04-10 0:53:00, ID: 1754171
我是个菜鸟,提个问题大家别笑。假设我的理解没有错误的话。
我理解:楼主的思路是可以将源数据库中的数据倒成文本文件,再将文本文件传到SQL-Server
中。将规范的文本文件(字段数据间有,等分隔)写入到SQL-SERVER、MY-SQL、ACCRESS中
是完全没有问题的。但是我有个问题在ACCRESS中OLE对象如果存成文本文件,将是以什么方式
写的。在ACCRESS中的OLE对象是在字段前进行加位处理的。如果按照加位以后的文本文件向
SQL-Server中写如的话,是否能保证目标数据库图象和源数据库中的图象是完全一样的。
还有关于时间字段的处理。楼上的各位大侠是怎么处理的?
小弟实在是很笨希望大家不吝赐教!

来自: DELPHI鸟, 时间: 2003-04-10 0:54:00, ID: 1754173
不知道楼主能不能有耐心看到我以上的留言啊?


来自: jslygwx, 时间: 2003-04-10 9:22:00, ID: 1754552
UP

来自: chunming, 时间: 2003-04-10 9:38:00, ID: 1754631
晕,我用Access数据库成功,但用Oracle不可以导出数据到Text啊!!!!!


来自: iwantflywithwinder, 时间: 2003-04-16 11:32:00, ID: 1773604
hmzz,你的excel表正在打开,关闭就好了。
我有个问题要和大家讨论啊,就是opendatasourse里面的参数我想用变量代替,
却无法实现,求解决的办法。因为实际应用中文件是要求课选择的啊。
declare @ds varchar(200)
select @ds=char(39)+'Data Source=D:/srmisII/srmisii文档/实施/0415/编码.xls'+';User ID=Admin;Password=;Extended properties=Excel 5.0'+char(39)
print @ds
SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',@ds)...goods$

char(39)是'

来自: 碧血剑, 时间: 2003-04-17 21:45:00, ID: 1779611
to:DELPHI鸟
你的问题直接将Access导入SQLServer就可以了,和用不用文本无关呀!
不明白你为什么要Access->txt->SQLServer,直接Access->SQLServer就可以了

to:iwantflywithwinder
你把整个语句赋给一个变量,然后exec就可以了


来自: bihai, 时间: 2003-04-19 16:40:00, ID: 1783958
以下用法我測試的情形存在以下問題,以簡体中OK,在繁体下出錯(導出為paradox表)
"Database 'paradox 7.x;database=..'does not exist"

ADOConnection.Execute('Select * Into abcd From [Text;Database=c:/temp].aaaa.txt');


来自: zhbforce, 时间: 2003-04-19 18:18:00, ID: 1784217
cn.Execute('SELECT * into test01 FROM JSBB1 in [ODBC]'+
'[ODBC;dsn=myora;User Name=scott;password=tiger]');

将Oracle导入到Access的方法,速度非常之快,3000多条记录,只需要4秒钟。
但是有一个缺点:每次运行到这里的时候,都会跳出Oracle8 ODBC Driver Connnect
的对话框,要求输入密码,不知道有没有办法将其屏蔽掉?

加入Persist Security Info=True也不行。

多谢碧血剑兄,打心眼里佩服!

来自: chunming, 时间: 2003-04-21 10:12:00, ID: 1786813
碧血剑兄,有没有做过从Oracle导入到Text?
我试了两种方法:
1、ADOConnection1.Execute('select * into [text:Database=E:/TEST].TEST.txt from mara');
结果是出错,信息为:“Invalid Character”。
这个可以理解:Oracle不支持Select into。

2、ADOConnection1.Execute('create table [text:Database=E:/TEST].TEST.txt as select * from mara');
错误信息为:“Invalid Table Name”

请教从Oracle导入到Text或Text导入到Oracle的方法。多谢!

来自: henrygaun, 时间: 2003-04-23 0:35:00, ID: 1793528

请教从sql sever导出数据到*.db

来自: 碧血剑, 时间: 2003-04-23 9:48:00, ID: 1794057
to henrygaun
同SQLServer->excel类似,只是连结串属性pardox 7.X就行了

来自: chunming, 时间: 2003-04-23 9:51:00, ID: 1794066
碧血剑兄没做过Oracle的导入导出吗?或者给些建议,多谢!

来自: kypansky, 时间: 2003-04-23 12:55:00, ID: 1794880
碧血剑:
你好!
在SQLServer中执行SELECT * into bmk FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0','Data Source="e:/share";User ID=Admin;Password=;Extended properties=dBase 5.0')...bmk
这样就可以把e:/share中的bmk.dbf表导入到Sqlserver中.
但在操作时发现SQL Server数据库如果不装在本机(DBF文件在本机),而是装在网络机器上执行时会有问题.而若DBF文件和SQL Server数据库在同一机器上时就没有问题.请问如何解决这个问题呢?
谢谢!

来自: 碧血剑, 时间: 2003-04-23 15:59:00, ID: 1795713
to chunming
看你楼上的留言,方法类似
to kypansky
SQLServer在服务端执行语句,所以DBF必须在服务器上,
你只能把它拷过去执行

来自: henrygaun, 时间: 2003-04-24 13:27:00, ID: 1798502

多谢碧血剑的指教
 请问txt->sqlsever时,如果用tab分开各个字段?能说详细点吗?


来自: 衫菜, 时间: 2003-04-24 13:38:00, ID: 1798540
碧血剑你把我害哭了,
上次我的问题到最后还是不行,
你说要把字段头一起倒出来到TXT中,
那BCP中没这个功能的啊

来自: 碧血剑, 时间: 2003-04-25 8:43:00, ID: 1800536
to 衫菜
被你打败了!
你可以自己在文本文件的第一行加上字段名呀!就几行语句可以搞定的事情!
变通一下,不要那么认死理儿。
否则没有字段名,你的文本内容又是一连串的逗号,当然有问题了


来自: catfox, 时间: 2003-04-25 8:57:00, ID: 1800584
衫菜的月薪很高的吧, 怎么......................

来自: 酷龙, 时间: 2003-04-25 9:29:00, ID: 1800754
这个不错,厉害呀!

来自: f2000, 时间: 2003-04-25 9:31:00, ID: 1800766
要是有几万条数据 速度快不快

Access 能和 SQLServer 用你的方法相互到动吗

来自: 衫菜, 时间: 2003-04-25 10:09:00, ID: 1800978
to catfox:
这个现在讨论的是技术问题啊,
和月薪没多大关系的呀,
我现在是把SQLSERVER中的数据BCP到文本文件的,
所以是不可能加上表头字段的,
因为有些东西如果自己用那么怎么改也没关系,
有些数据和别人达成协议后是不能轻易改动的拉。

来自: catfox, 时间: 2003-04-25 10:23:00, ID: 1801058
[:)]

来自: wang_phoenix, 时间: 2003-04-25 10:27:00, ID: 1801081
up studying!!

来自: hyneter, 时间: 2003-04-25 11:40:00, ID: 1801489
碧血剑兄:
我是菜鸟,在SQLServer 2000 中导出到TXT文档还无法完成。
我的连接:Provider=SQLOLEDB.1;Persist Security Info=True;User ID=sa;
Data Source=HYNETER //HYNETER此为SQLServer服务器名称。
我的语句:ADOConnection1.Execute('Select * into [Text;Database=c:/temp;TabDelimited].test.txt from table');
错误提示:数据库 'Text;Database=c:/temp;Tabdelimited' 不存在。
请再指教!


来自: XdxDaxiong, 时间: 2003-04-26 18:10:00, ID: 1805655
碧血剑兄:

SELECT * into tpSplib
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="e:/XdxMarket";User ID=Admin;Password=;Extended properties=dBase 5.0')...tpSplib

这有正确吗?Help Help Me。
Email:XdxDaxiong@163.com
MSN:2718060@163.com
QQ:59745865
望回音。

来自: kris_ren, 时间: 2003-04-26 21:21:00, ID: 1805955
要用编程实现sqlserver到oracle的数据转移该怎么办呢?切楼主解答

来自: tohappy, 时间: 2003-04-27 8:12:00, ID: 1806411
关注下列问题,一定对你有益:
http://delphibbs.com/delphibbs/dispq.asp?lid=1743719
http://delphibbs.com/delphibbs/dispq.asp?lid=1742072
http://delphibbs.com/delphibbs/dispq.asp?lid=1655569
http://delphibbs.com/delphibbs/dispq.asp?lid=1786356

来自: Radeon, 时间: 2003-04-29 23:51:00, ID: 1815820
碧血剑兄:
用什么方法在一个Access2000中打开另一个Access2000库(有密码,但密码已知)中的表。
在程序中实现。

来自: down186, 时间: 2003-04-30 9:54:00, ID: 1816426
up

来自: xiamouse, 时间: 2003-04-30 11:06:00, ID: 1816859
to 楼主
能不能帮我决解这个问题:http://delphibbs.com/delphibbs/dispq.asp?lid=1797588
我的文本格式是用‘|’线分隔的,‘|’与‘|’之间是一个字段
如:aaaa|bbb|cccc|dddd|
aaa|bbb|c|ddd|


来自: DuckJoe_1, 时间: 2003-05-08 10:36:00, ID: 1839321
thx

来自: chunming, 时间: 2003-05-15 11:07:00, ID: 1862827
ADOConnection.Connected := True;
ADOConnection.Execute('Select * Into abcd From [Text;Database=c:/temp].aaaa.txt');
用这个方法,是不是一定要先有schema.ini配置文件?

还有
ADOConnection1.Execute('Select * into [Text;Database=c:/temp;TabDelimited].test.txt from table
在Test.txt存在时就会出错,而且,即使指定TabDelimited,出来的结果还是一“,”分隔

另外从Text或Excel到Oracle还是没有成功,我做的两个例子有什么问题?:
1、ADOConnection1.Execute('select * into [text:Database=E:/TEST].TEST.txt from mara');
结果是出错,信息为:“Invalid Character”。
这个可以理解:Oracle不支持Select into。

2、ADOConnection1.Execute('create table [text:Database=E:/TEST].TEST.txt as select * from mara');
错误信息为:“Invalid Table Name”

错在哪里?请已经有成功经验的朋友说说看,谢谢!

来自: 左右手, 时间: 2003-05-16 16:28:00, ID: 1867726
别说ORACLE了,我拿access都没试成功
ADOConnection.Connected := True;
ADOConnection.Execute('Select * Into abcd From [Text;Database=c:/temp].aaaa.txt');
结果出错告诉我from子句里有语法错误,偶可是拷过去的,应该没什么错的,哪位调通了的给指点一下。


来自: 左右手, 时间: 2003-05-19 11:16:00, ID: 1873890
呵呵,access终于试成功了,不过其他数据库还在实验中,哪位仁兄有试通了oracle和informix的请给个例子

来自: 左右手, 时间: 2003-05-21 10:20:00, ID: 1880668
informix的也已经搞定了,20多万条数据,用了几分种就搞定了,速度确实快。
就是oracle还是不成功
1.连接指向oracle
执行:select * into [text:Database=C:/].test.txt from gds_order
出错:missing keyword,不知道是什么意思,怎么也调不同
2.连接指向txt文件,ODBC是指向oracle的
执行:insert into test.txt select * from gds_order
in [ODBC][ODBC;DSN=hbqzb;UID=hbqzb;PWD=hbqzb;Persist Security Info=True]
出错:告诉找不到gds_order这个表,可这个表绝对存在,而且名字没写错。
哪位试通了的话,给个说明,多谢了。

来自: hyneter, 时间: 2003-05-21 11:50:00, ID: 1881240
左右手:SQL的搞定了吗?给个例子,指点一下如何?

来自: 左右手, 时间: 2003-05-21 16:38:00, ID: 1882563
楼上的,你是问SQLSERVER的吗?我还没试,因为我在单位的机器上没装
给你一个informix到access的例子,应该是一样的,你先拿去试试,如果不行的话,我再拿
回家在SQLSERVER上试试,你试通了记得告诉我,我就懒的再试了:)
连接指向access,执行下面语句,就可以把dsn所指向的informix的数据写进access中
insert into gds_order select * from gds_order
in [ODBC][ODBC;dsn=jbcmis;User Name=informix;password=informix;]


oracle的有谁弄出来了,能否给个例子?

来自: trojans, 时间: 2003-05-21 17:37:00, ID: 1882927
用ADO进行SQLSERVER转TXT不能,似乎是因为ADO不支持Microsoft Text Driver引擎,
看来要转的话不能用ADO了

来自: hyneter, 时间: 2003-05-21 20:53:00, ID: 1883443
左右手:我指的是从SQLSERVER转到TXT文件,我还没有试成功。如果你试OK请给个例子,先谢了!

来自: 左右手, 时间: 2003-05-22 8:54:00, ID: 1884066
好,偶晚上回去试试。
昨天回去试了SQLSERVER转到access的,连接指向SQLSERVER,用opendatasource到是可以
查出access的数据,但是似乎有点问题,因为我的access里有二十多个字段,可是只查出
来最后面的5个字段,其他字段都没有,不知道是什么原因?

来自: dlink, 时间: 2003-05-22 9:08:00, ID: 1884130
----------------------------------------------
╭⌒╭⌒╮╭⌒╮~╭⌒╮
╬ ╱◥███◣╬╬╬╬╬╬╬╬╬╬╬
╬ ︱田︱田 田 ︱          ╬
----------------------------------------------



╲█◤
◢██◣
◤◥


///|///
// - - //
( @ @ )
+---------------------oOOoo-(?)ooOOo---------------------+
| |
| |
| Ooooo |
+-----------------------ooooO--( )---------------------+
( ) )|/
/|( (_/
/_)



("`-''-/").___..--''"`-._
`6_ 6 ) `-. ( ).`-.__.`)
(_Y_.)' ._ ) `._ `. ``-..-'
_..`--'_..-_/ /--'_.' ,'
(il),-'' (li),' ((!.-'

来自: 碧血剑, 时间: 2003-05-22 14:06:00, ID: 1885579
to hynetey
将SQLServer导入到文本文件
连接串
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/temp;Extended Properties="text;HDR=YES;";Persist Security Info=False
SQL语句
SELECT * into aaa.txt FROM Tab1 IN [ODBC]
[ODBC;Driver=SQL Server;UID=sa;PWD=;Server=127.0.0.1;DataBase=Demo;]
要改变分隔符,可以修改
Schema.ini文件。该文件中指明分割符,如:
[yourfile.txt]
...
Format=Delimited(|)
更详细的例子可以参考:微软的Knowledge Base的文章:“Q149090 CC: How to Use Schema.ini for Accessing Text Data”和微软的Knowledge Base的文章:“Q187670 OWTO: Use RDO and ODBC Text Driver to Open a Delimited Text”。


来自: dlink, 时间: 2003-05-22 15:21:00, ID: 1885905
请 碧血剑 高手指点一二

是一个公安局的项目
从Access 数据库中的一个表 有一百万条记录
要导入Oracle 中
其中:1 Access 数据库中的表 有相片

怎样才能 效率高些 又稳固



来自: hyneter, 时间: 2003-05-22 15:58:00, ID: 1886103
谢谢楼主---碧血剑!测试OK!
我在提出问题那为你加分,略表心意。

来自: 左右手, 时间: 2003-05-22 16:21:00, ID: 1886214
to:碧血剑
老兄,你终于又上来了,能否给说说oracle跟其他数据库怎么导数据,我搞了好几天了都不行
另外上面我说的那个缺字段的问题不知道你碰到过没有,怎么解决?

来自: seafox, 时间: 2003-05-25 11:16:00, ID: 1893123
to:碧血剑 ,看看我的问题,急呀,帮帮我吧
http://www.delphibbs.com/delphibbs/DispQ.asp?LID=1888275

来自: 笨鸟1号, 时间: 2003-05-25 14:30:00, ID: 1893545
碧血剑兄:
我在服务器端使用
procedure TForm3.Button1Click(Sender: TObject);
begin
Form3.adoquery1.Close;
Form3.adoquery1.SQL .clear;
Form3.adoquery1.SQL .add('select * into tj21');
Form3.adoquery1.SQL .add('from OpenDataSource(''''Microsoft.Jet.OLEDB.4.0'''',''''Data Source="d:/";User ID=Admin;Password=;Extended properties=dBase 5.0'''')...tj21;');
form3.adoquery1.execsql;
end;
运行时,报错:project project2.exe raised exception class EoleException with
message:第二行 'microsoft' 附近有语法错误。最近急用,请指教,不胜感激。

来自: twt_gd, 时间: 2003-05-25 15:52:00, ID: 1893682
楼顶:若e:/share与sql server不在同一机器不行啊,该如何做?

来自: XdxDaxiong, 时间: 2003-05-26 8:25:00, ID: 1894734
笨鸟1号兄弟,OpenDataSource是要数据库是同一机上运行。

来自: hrc378, 时间: 2003-05-26 12:57:00, ID: 1895873
楼主好,我是一个初学者,请多多帮忙,我想把一个TXT文件的数据(SQL2000备份数据的格式)
导入到SQL2000里面,这样的语句好像不行,请多指教!
ADOConnection1.Connected := True;
ADOConnection1.Execute ('Select * Into aaa From
[Text;Database=c:/111].JURY_FILE_FORMAT_TABLE.txt');
数据库名字aaa,文件名为JURY_FILE_FORMAT_TABLE.txt

来自: 碧血剑, 时间: 2003-05-30 10:34:00, ID: 1908679
to 笨鸟1号
把你的SQL语句在查询分析器里执行,就能发现你的语句错误了。
to hrc378
应该是
SELECT * into bmk
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="e:/share";User ID=Admin;Password=;Extended properties=Text')...bmk

另外最近很多人给我发来此问题邮件,由于比较忙
所以未能一一回复,请见谅!
还有来信最好发来你认为有问题例子代码。
谢谢大家的关注。


来自: sing_cee, 时间: 2003-05-30 11:16:00, ID: 1908881
哪里有SQL SERVER2000下,如果下载成功送100分。

来自: hrc378, 时间: 2003-05-30 11:41:00, ID: 1908998
楼主, 你给我程序不行,我用的是文本文件的数据库数据,并不是ACCESS数据库!


来自: sing_cee, 时间: 2003-05-30 14:24:00, ID: 1909628
我要作的一个可以把固定格式的EXCEL表导入SQLSERVER 考虑到对数据进行完整性检查 想通过一个临时表中转, 那位朋友有类似经验 给点代码看看 送100分 谢谢
ndsmail@etang.com


来自: 碧血剑, 时间: 2003-05-30 20:04:00, ID: 1910787
to hrc378
你试了吗?就说不行!
你不知道文本文件可以用Jet4引擎存取吗?

来自: 笨鸟1号, 时间: 2003-05-31 21:49:00, ID: 1913380
TO 碧血剑
楼主,你好。你说的方法我在查询分析器里,能行。可是在QUERY.SQL.ADD(),EXEXSQL().
老出错。所以想你请教。到底应该怎么样写才正确。我在同一台机上运行的。就是服务器端
也会出错,我连的本机的SQL SEVER 数据库。

来自: flywing, 时间: 2003-05-31 22:27:00, ID: 1913446
to 碧血剑:
能否给个SQL server 导出到DBF格式的例子?

来自: 碧血剑, 时间: 2003-06-03 11:08:00, ID: 1920186
to 笨鸟1号
你用ADOConnection.Execute()执行那个SQL语句
to flywing
sql server导出到DBF
ADOConnection 指向DBF用Jet4连接
SELECT * into table FROM Tab1 IN [ODBC]
[ODBC;Driver=SQL Server;UID=sa;PWD=;Server=127.0.0.1;DataBase=Demo;]


来自: flywing, 时间: 2003-06-03 14:22:00, ID: 1920999
to 碧血剑:
Jet4是指向Access的吧,另外:DBF文件开始不存在,导出时生成的。
烦劳!!

来自: henry_shu2000, 时间: 2003-06-03 22:57:00, ID: 1922515
真的很高兴有各位的讨论,我正在解决此问题!

来自: 碧血剑, 时间: 2003-06-04 12:16:00, ID: 1923688
to flywing
Jet4指向DBF的路径

来自: 高守, 时间: 2003-06-04 12:21:00, ID: 1923704
这个方法,很久以前我就在使用了有兴趣的朋友可以跟我联系
QQ:44600694

来自: zklcy, 时间: 2003-06-05 13:18:00, ID: 1927216
有问题啊!连接本地的数据库可以执行
SELECT * into bmk
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="e:/share";User ID=Admin;Password=;Extended properties=dBase 5.0')...bmk
语句,可是连接远程的数据库就会报错!
原因是该sql语句在服务器端执行,而OpenDataSource中的Data Source所连接的是本机上的路径,服务器端根本没这个文件。
有没有其他的什么方法解决远程数据的导入导出问题

来自: app2001, 时间: 2003-06-08 14:41:00, ID: 1934539
TO 碧血剑
授人以鱼不如授人以渔,还请老兄整理一下自己找出这些方法的经验,如那些各式类型数据库的导入导出在OpenDataSource函数中的各式参数该如何定义,又在哪有这样的文献资料,让大家学习学习,自己吸收,企不胜过老师一一亲手指点,更为有益及方便大家,也省了老兄好多精力,你觉得如何呢?

来自: zbsfg, 时间: 2003-06-08 19:29:00, ID: 1934951
这个问题害得我想了好几天,后来还是不能用SQL实现,后来只能用ACCESS的DOCMD解决,但对SQLSERVER就没办法了,这个办法我要收藏.

来自: zbdeng, 时间: 2003-06-09 10:58:00, ID: 1936080
从oracle导数据出来,应该注意表名要大写。

来自: lescape, 时间: 2003-06-09 11:42:00, ID: 1936268
To 碧血剑
请问:如何用SQL语句将一个自由表(DBF)转成Excel文件,望赐教,万分感谢!!

来自: poppy, 时间: 2003-06-10 6:35:00, ID: 1938521
太谢谢碧血剑了

来自: huddle, 时间: 2003-06-10 15:06:00, ID: 1939821
zhbforce的办法不行啊
测试不成功,报错
ODBC--连接到'...'失败

我odbc设置好了,而且打得开数据库的
请指教,谢谢

来自: wdlyc, 时间: 2003-06-10 15:06:00, ID: 1939883
很好 thx

来自: huddle, 时间: 2003-06-10 15:08:00, ID: 1939890
各位帮忙讨论啊,成果一起分享
我会另开贴算分的,请多帮忙

来自: ndyufei, 时间: 2003-06-10 15:19:00, ID: 1939930
to Huddle:
cn.Execute('SELECT * into test01 FROM JSBB1 in [ODBC]'+
'[ODBC;dsn=myora;uid=scott;pwd=tiger]');

来自: huddle, 时间: 2003-06-10 15:23:00, ID: 1939953
to 楼上
我一开始就是照这个试的,总报错 连接失败

来自: delfish, 时间: 2003-06-10 15:34:00, ID: 1940023
浠ュ墠鎴戝氨鐢ㄨ繃鐨勶紝璁稿?璁ㄨ?ado璁哄潧閮芥湁绫讳技鐨勭敤娉曪紝涓嶈繃浣犲湪杩欓噷璐村嚭锛岃繕鏄?彲浠ュ畾涔変笅鐨勩?

来自: fz97535, 时间: 2003-06-10 15:45:00, ID: 1940078
给大家 报告一下 测试结果:用楼主的方法
一个公安系统的数据 Acess数据库 300 M
一百多万条记录 到出到文本文件中
用了 5 分中
文本文件有 200 多 M

比较爽

来自: huddle, 时间: 2003-06-10 16:28:00, ID: 1940299
oracle=>access的导出,有谁成功吗,请发个例子给我,我另开贴100分,谢谢

来自: 寒天红叶, 时间: 2003-06-11 16:44:00, ID: 1943601
我设置了一个odbc数据源con,它用来连接mysql数据库,我现在要将mysql中snort0数据库中的tmps表的内容导入到sqlserver,请问如何做?

来自: fz97535, 时间: 2003-06-12 16:15:00, ID: 1946814
----------------------------------------------
╭⌒╭⌒╮╭⌒╮~╭⌒╮
╬ ╱◥███◣╬╬╬╬╬╬╬╬╬╬╬
╬ ︱田︱田 田 ︱          ╬
----------------------------------------------
╲█◤
◢██◣
◤◥

///|///
// - - //
( @ @ )
+---------------------oOOoo-(?)ooOOo---------------------+
| |
| |
| Ooooo |
+-----------------------ooooO--( )---------------------+
( ) )|/
/|( (_/
/_)

("`-''-/").___..--''"`-._
`6_ 6 ) `-. ( ).`-.__.`)
(_Y_.)' ._ ) `._ `. ``-..-'
_..`--'_..-_/ /--'_.' ,'
(il),-'' (li),' ((!.-'


来自: annkie, 时间: 2003-06-14 16:24:00, ID: 1947660
hao

来自: annkie, 时间: 2003-06-14 16:25:00, ID: 1947736
.

来自: annkie, 时间: 2003-06-14 17:39:00, ID: 1952474
这是什么意思?

“不能使用odbc来输入、输出或将一个外部Microsoft Jet或Isam数据库链接到你的数据库。“

来自: annkie, 时间: 2003-06-14 17:47:00, ID: 1952498
我想从access导出到dbf,出现上面的问题,如何解决?
ADOConnection2.Execute('select * into hello from hello IN [ODBC] [ODBC;Driver={Microsoft Access Driver (*.mdb)};UID=Admin;PWD=;DBQ=c:/temp/test.mdb;]');


来自: JamesBond_L, 时间: 2003-06-14 17:54:00, ID: 1952509
UP,以前试过,但是不行,这个行的吗?UP

来自: annkie, 时间: 2003-06-14 18:07:00, ID: 1952539
解决了,我用的cb
/*
功能 : Access To DBF
ADOConnection2 => Access
*/
sql = "SELECT * INTO jyjh in /"c://temp/"[dbase 5.0;] FROM jyjh";
ADOConnection2->Execute(sql);

来自: annkie, 时间: 2003-06-14 19:46:00, ID: 1952709
To 碧血剑:
你发给我的例子没有收到,麻烦你再发一次。另外我刚来这里,不晓得怎么发短消息,麻烦告诉我一下怎么发,谢谢了。annkie@163.com

来自: mark_yjh, 时间: 2003-06-14 20:19:00, ID: 1952754
写得不错:我来讲下
我们公司现在用的是mysql表大约在200多个
每个表大记录大于在100000,有的表更多
现在公司要求在最短时间转换成为oracle
如何做:
一:我人试过把mysql的记录转换成txt 但是oracle的日期字 是不认的;
2 mysql中的表的类型和oracel是不相同的:如何能转换类形 如mysql中的text 在oracle中是没有的:
mysql中的datetime 在oracle中可统一叫date在9.i中出现在很多新的日期类形:但是对于文本格式是不认的
我在oracle 中还没有建表:我如何做
我不可能用sql来完成这些工作:当时我想到oracle的p-sql来完成。但是发现有很多数据不对的地方;
所以我写了一个程序:是一个mysql to oracle的工具:
代码很少:只有100多行,成了建表数据,数据倒入的兼容性的认计。
讲起快不快:那不好讲,只用了大于10分钟时间:大于每秒处理475个记录
我会在源码空间发布;










来自: trojans, 时间: 2003-06-17 10:42:00, ID: 1958190
To 碧血剑:
请问有没有OpenDataSourc的详细说明,另外下面语句无法执行,不明白最后面的"...bmk"是干什么用的
SELECT * into bmk
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="e:/share";User ID=Admin;Password=;Extended properties=Text')...bmk



来自: trojans, 时间: 2003-06-17 11:02:00, ID: 1958311
另外,谁知道这个错是怎么回事?
[Microsoft][ODBC SQL Server Driver][SQL Server][OLE/DB provider returned message:]无法启动应用程序。工作组信息文件丢失,或是已被其他用户以独占方式打开

来自: mark_yjh, 时间: 2003-06-17 13:54:00, ID: 1958990
我已在源码空间发布;


来自: huddle, 时间: 2003-06-17 14:10:00, ID: 1959034
mark_yjh:
发在哪里,找不到,给个链接吧,谢了

来自: 星空, 时间: 2003-06-17 16:25:00, ID: 1959535
将Oracle导入到文本文件
连接串
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/temp;Extended Properties="text;HDR=YES;";Persist Security Info=False
SQL语句
SELECT * into aaa.txt FROM Tab1 IN [ODBC]
[ODBC;Driver={Microsoft ODBC for Oracle};UID=oracle;PWD=oracle;SERVER=yourdata;]

将Oracle导入到Access
连接串
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/temp/db1.mdb;Persist Security Info=False
SQL语句
SELECT * into tablename FROM Tab1 IN [ODBC]
[ODBC;Driver={Microsoft ODBC for Oracle};UID=oracle;PWD=oracle;SERVER=yourdata;]



来自: stargazer, 时间: 2003-06-17 17:01:00, ID: 1959719
好贴,不应沉底,顶一下以示支持。

来自: wchal, 时间: 2003-06-17 19:06:00, ID: 1960152
TO:各位
SQL--EXCEL 好像不可以使用临时表.
如果我要转换表中的一部分记录不就不可以了.

来自: yyhua, 时间: 2003-06-17 21:07:00, ID: 1960424
TO:碧血剑
使用ado,从oracle导入到sql server能否使用你所说的方法

来自: 碧血剑, 时间: 2003-06-18 9:41:00, ID: 1961165
to
to 星空
谢谢跟贴
to yyhua
你的问题最好用建立链接服务器的方法解决,
但是用OpenDataSource,OpenRowSet也应该可以查询
但是我的大硬盘坏了,没法装Oracle,不能帮你试


来自: lhl20000, 时间: 2003-06-18 11:26:00, ID: 1961654
to :碧血剑
你好:
我想问一问:interbase 服务器用SQL语句不能实现
从文本文件到*.gdb的转化吗?
但是
Insert INTO [Text;DATABASE=c:/temp;TabDelimited].[ee.txt] FROM SYSTEST_NUMBER_MANAGE
这句将数据库记录导出到文本文件根本就不行,提示SQL语句有错误。
有解决的办法吗?请指教。






来自: searoom, 时间: 2003-06-19 11:08:00, ID: 1964759
lhl20000:

你要记住这样一件事:
你往什么里面导数据,那么就让 sql 语句在其相应的 driver 里面执行
也就是说,如果你往 文本文件 里面导数据的话,那么就让你的 AdoConnection 指向该文本文件,(当然,其driver是 jet)


来自: jyz_1006, 时间: 2003-06-19 16:44:00, ID: 1966141
to 碧血剑大侠:
想把文本文件导入到ACCESS数据库,用你的方法可以实现,
ADOConnection.Connected := True;
ADOConnection.Execute(’Select * Into abcd From [Text;Database=c:/temp].aaaa.txt’);
但是若abcd已存在则报错,不知试了没有?
我单位每月都有数据传来(用逗号分开的文本文件),我是想把数据添加到库的表中,
而不是每月建一新表,怎么做?请赐教!谢谢!

来自: chinausa, 时间: 2003-06-21 20:22:00, ID: 1971202
碧血剑:
将Access 2000中的一个表的内容导入到 另一个 ACCESS 2000的 一个表中,如何导??
有代码吗?

来自: hualex, 时间: 2003-06-21 22:18:00, ID: 1971368
收藏此帖。仁兄果然历害。

来自: ccweifen, 时间: 2003-06-22 11:14:00, ID: 1971838
还是没明白如何将 SQL Server中的数据导出到EXCEL 中,
请高手指点

来自: chinausa, 时间: 2003-06-23 18:18:00, ID: 1974969
碧血剑:
将Access 2000中的一个表的内容导入到 另一个 ACCESS 2000的 一个表中,如何导??
有代码吗?

来自: 碧血剑, 时间: 2003-06-23 19:01:00, ID: 1975057
to jyz1006
你的邮件已回复
to chinausa
这种导入是最简单的
SQL语句 select * into aaa from aaa in 'c::/temp/b.mdb'
用ADOConnection.Execute执行

来自: luky_99, 时间: 2003-06-23 21:00:00, ID: 1975263
TO 碧血剑:
ADOConnection.Connected := True;
ADOConnection.Execute('Select * Into abcd Fro[Text;Database=c:/temp].aaaa.txt');

我用這條不行呀。說什麼
Invalid Object name'text;database=c:/aa.DBA.txt'


来自: gaolang2, 时间: 2003-06-23 23:42:00, ID: 1975556
study

来自: 宁静蝴蝶, 时间: 2003-06-24 14:34:00, ID: 1977070
学习啊!!学习的机会在这儿.[:D]
IF 不用ADO,用BDE如何导出,[?]
IF 不导出全表,只是满足条件的部分数据.[?]
请教各位!!!!
[:)][:)][:)]



来自: 宁静蝴蝶, 时间: 2003-06-24 14:42:00, ID: 1977084
补充一下:是从数据库:ORACLE或Paradox 7.X导出至EXCEL
[:)] [:)]

来自: nullx, 时间: 2003-06-24 14:57:00, ID: 1977148
要条件限制还不容易,加个 where xxx like xxx 就行了嘛

来自: dcsdcs, 时间: 2003-06-24 15:03:00, ID: 1977166
我早就这样了!
注意:这里的路径必须是服务器上面的!
对foxpro 6.0采取odbc,建立一个数据源
insert into t_d(申请日期,发票序号,序号,日期,发票号,发票种类,发货单id,申请单编号,片区,部门,销售员,客户代码,客户单位,开票名称,客户邮编,客户地址,客户电话,客户税号,客户开户行,客户帐号,开票单位,邮编,地址,电话,税号,开户行,帐号,编号,品名,规格,单位,单价,数量,金额,不含税单价,不含税金额,税额,底价,税率,税率1,红票金额,红票号,发票收件人,收件人地址,收件人电话,收件人邮编,备注,打印标志,制单,复核,审核,标志1,标志,管理模式,警示标志,结算单价,结算标准,扣率,冲减金额,回款金额,少回款,回款差额,欠款金额,欠款数量,来款单序号,主管部门,退票标志,退票日期,发货日期,申请号)
SELECT 申请日期,发票序号,序号,日期,发票号,发票种类,发货单id,申请单编号,片区,部门,销售员,客户代码,客户单位,开票名称,客户邮编,客户地址,客户电话,客户税号,客户开户行,客户帐号,开票单位,邮编,地址,电话,税号,开户行,帐号,编号,品名,规格,单位,单价,数量,金额,不含税单价,不含税金额,税额,底价,税率,税率1,红票金额,红票号,发票收件人,收件人地址,收件人电话,收件人邮编,备注,打印标志,制单,复核,审核,标志1,标志,管理模式,警示标志,结算单价,结算标准,扣率,冲减金额,回款金额,少回款,回款差额,欠款金额,欠款数量,来款单序号,主管部门,退票标志,退票日期,发货日期,申请号
from
OPENROWSET('MSDASQL',
'dsn=ddd;SourceDB=e:/d_pro/mail/poprec;SourceType=DBF'
,'select * from E:/d_pro/mail/poprec/d.dbf') as a --where 发票号 not in(select 发票号 from t_d)


来自: Pc 狂迷, 时间: 2003-06-24 15:10:00, ID: 1977196
大家试过这句了吗?
导入文本:
BULK INSERT DM.dbo.testest FROM 'F:/Test.TXT'
WITH
(
FIELDTERMINATOR = '|',
-- '|' 为分隔符

ROWTERMINATOR = '/n'
-- '/n' 为断行符
)

另外,先生成 DTS ,然后在 DELPHI 中调用 .dts 是最好的导入导出方法,而且灵活。

来自: Pc 狂迷, 时间: 2003-06-24 15:11:00, ID: 1977200
大家试过这句了吗?
导入文本:
BULK INSERT DM.dbo.testest FROM 'F:/Test.TXT'
WITH
(
FIELDTERMINATOR = '|',
-- '|' 为分隔符

ROWTERMINATOR = '/n'
-- '/n' 为断行符
)

另外,先生成 DTS ,然后在 DELPHI 中调用 .dts 是最好的导入导出方法,而且灵活

来自: 啊啊啊啊啊, 时间: 2003-06-24 22:25:00, ID: 1978410
我按楼主的办法试了试,txt导入access成功了,但有个问题:要加入数据的表必须是不存在的,在程序运行时创建,否则提示表已存在!

另外希望楼主详细介绍一下,如何把excel导入到access中,我用楼主的办法试了,程序没反应,还结束不了

来自: huddle, 时间: 2003-06-25 15:49:00, ID: 1979983
楼主碧血剑 和 星空 :
请到
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1979971
拿分,顺便帮我解决个问题,谢谢

来自: songmk, 时间: 2003-06-29 15:46:00, ID: 1988862
收藏

来自: 江江, 时间: 2003-07-02 19:49:00, ID: 1997991
各位好,
我也遇到此类问题,在这里找到了方法,很兴奋.
但是我从paradox型数据库导出.txt文件时执行下面的语句出错:
adoconnection1.Execute('select * into [Text;database=d:/].car_bz.txt from car_bz ');
运行时说我[odbc paradox 驱动程序]查询输入必须包含至少一个表或查询.
这是为什么,我就是想将car_bz表中的数据导出成.txt文件.应该怎么写啊?请大家帮帮我!
江江

来自: huddle, 时间: 2003-07-03 8:52:00, ID: 1998554
从oracle导到oracle有没有人成功过
不同的数据库之间
说说怎么做的,谢谢

来自: jjchen123, 时间: 2003-07-03 11:25:00, ID: 1999146
TO 碧血剑:
你的方法很好很快,但是得出的文本文件的第一行是有字段标致的,
而且我要的导出导入格式都是定好的又如何处理呢?
我已前是用循环写入文本的,有没有其他更好的方法呢?[:D]
如:
id xm gz
------------------------------
1 张小三 1000
2 李四 20
3 王五 300
文本格式
1 张小三 1000
2 李四 20
3 王五 300

来自: 碧血剑, 时间: 2003-07-03 16:33:00, ID: 2000330
贴一段资料,可解决楼上问题
使用 Schema.ini 檔來執行文字檔限制
如果您不能改變文字檔來執行文字檔限制,您可以改用 Schema.ini 檔。Schema.ini 檔是一種包含可覆寫 Microsoft Windows 登錄中預設文字驅動程式設定值項目的文字檔。若要使用 Schema.ini 檔,請執行下列步驟:

儲存 Schema.ini 檔於目前正在連結的文字檔所在的資料夾中。
將該檔案命名為 Schema.ini。
在此 Schema.ini 檔案的第一行,鍵入正在連結文字檔的檔名,並用括號括住。
範例:指定第一行資料行是資料

[Products.txt]
ColNameHeader=False

範例:指定分號字元 (;) 作為分隔符號

[Categories.txt]
Format=Delimited(;)

範例:指定具固定寬度的檔案和資料行寬度

[Shippers.txt]
ColNameHeader=False
Format=FixedLength
Col1=ShipperID Text Width 11
Col2=CompanyName Text Width 40
Col3=Phone Text Width 24

我使用了"|" 作为txt文件的分割符,但在txt文件取数据时,却是以","来读取数据的,请问如何设置。
答:如果你采用的是数据库方式读TXT文件,可以在TXT文件所在目录建立一个Schema.ini文件。该文件中指明分割符,如:
[yourfile.txt]
...
Format=Delimited(|)
...
更详细的例子可以参考:微软的Knowledge Base的文章:“Q149090 CC: How to Use Schema.ini for Accessing Text Data”和微软的Knowledge Base的文章:“Q187670 OWTO: Use RDO and ODBC Text Driver to Open a Delimited Text”。


来自: newmoonfaw, 时间: 2003-07-04 16:20:00, ID: 2003333
请问碧血剑:
1、如何在server上进行联表查询后导至本地数据库。
2、如何在本地通过程序把服务器上的表与本地数据库进行查询?比方说本地数据库是Access数据库。
关于1,我试过这样进行查询,但不成功。

select a.id,a.citemcode as 物料号,a.nplanprice as 计划价,b.nOpenQua as 期初数量,a.nplanprice*b.nOpenQua as 期初金额,c.description as 库位名称,a.cDeptcode as 单位,rtrim(ltrim(a.citemname)) as 物料名称,a.cspecific as 规格,cmodel as 型号

from inv_itemmaster a,inv_inventory_d as b,inv_location as c where a.id=b.ninvitemid and a.nitemtypeid=(select id from inv_itemtype where description like '%自制件%') and c.id=
a.nLocatId
in
[ODBC]
[ODBC;Driver=SQL Server;UID=sa;PWD=;Server=sqlserver;DataBase=fmez;]

来自: jjchen123, 时间: 2003-07-04 16:23:00, ID: 2003355
多谢碧血剑仁兄,小弟用以上的方法成功做出了数据的导出.
但还是有一个问题,为什么我导出字符形数据都带有双引号的,
有没有办法把引号也除去呢?

来自: 宁静蝴蝶, 时间: 2003-07-04 19:05:00, ID: 2003950
楼主:
您好!请问如何从数据库:ORACLE或Paradox 7.X导出至EXCEL表,能用QUERY来导出吗?
有代码吗?谢谢!!![:)]


来自: 石头, 时间: 2003-07-04 19:38:00, ID: 2003980
奉献型的高手,才是真正的高手!

来自: Pc 狂迷, 时间: 2003-07-07 15:19:00, ID: 2009021
导入分隔符为'|' 的文本时使用:
insert into MyFenDuan(ColA,ColB,ColC,ColD,ColE,ColF,ColG,ColH,ColI,ColJ,ColK,ColL,ColM,ColN)
Select *
from OpenRowset('MSDASQL', 'Driver={Microsoft Text Driver (*.txt; *.csv)};
DefaultDir=F:/DATA;','select * from A.txt')
不行! 非要生成一个 内容为
[A.txt]
ColNameHeader=False
Format=Delimited(|)
MaxScanRows=25
CharacterSet=ANSI
Col1=F1 Integer
Col2=F2 Char Width 60
Col3=F3 Char Width 80
Col4=F4 Char Width 20
Col5=F5 Char Width 20
Col6=F6 Char Width 20
Col7=F7 Char Width 20
Col8=F8 Char Width 20
Col9=F9 Char Width 20
Col10=F10 Char Width 20
Col11=F11 Char Width 20
Col12=F12 Char Width 20
Col13=F13 Char Width 20
Col14=F14 Char Width 20
Col15=F15 Char Width 20
的 schema.ini 才行,苦恼。

BULK INSERT DM.dbo.testest FROM 'F:/Test.TXT'
WITH
(
FIELDTERMINATOR = '|',
ROWTERMINATOR = '/n'
)
方便好用,但文本非要在服务器上才行,也苦恼。


来自: lyjgs.168, 时间: 2003-07-07 16:22:00, ID: 2009310
学习,


来自: gxswy, 时间: 2003-07-11 16:22:00, ID: 2021610
我的问题是这样的,我的客户端是ACCESS数据库,服务器端是SQL SERVER。平常客户机只是对ACCESS操作,到下班前才将更新的数据提交给服务器,客户机和服务器是远程连接。这样的话我想做的就是先把ACCESS中的数据导出为一文本文件,将这个文本传递给服务器,然后服务器再把这个文本文件导入数据库。这样带来的一个问题是BATCHMOVE时要加上一个where 子句,但我怎么调整都不能通过,请高手指点。
ADOConn_upload.execute('Select * Into [Text;Database=E:/].temp.txt From BillIndex where submit>0 ')

来自: xzzcq, 时间: 2003-07-12 13:20:00, ID: 2023753
真的不错,感谢!!!!!!

来自: playboy2002, 时间: 2003-07-12 19:45:00, ID: 2024516
谁能不能把excel 导向sql2000的详细情况写清楚。谢谢了。

来自: HUANGPEIYAN, 时间: 2003-07-13 10:04:00, ID: 2025101
整理一下:
解决了,我用的cb
/*
功能 : Access To DBF
ADOConnection2 => Access
*/
sql = "SELECT * INTO jyjh in /"c://temp/"[dbase 5.0;] FROM jyjh";
ADOConnection2->Execute(sql);

c:/temp/aaa.dbf to Access,
ADOConnection 指向Access
语句是 select * into bbb from aaa in 'c:/temp' 'dbase 5.0;'

在Form上放一个ADOConnection,连结指向目标Access库
比如txt文件在c:/temp/aaaa.txt
就执行
ADOConnection.Connected := True;
ADOConnection.Execute('Select * Into abcd From [Text;Database=c:/temp].aaaa.txt');

将Oracle导入到文本文件
连接串
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/temp;Extended Properties="text;HDR=YES;";Persist Security Info=False
SQL语句
SELECT * into aaa.txt FROM Tab1 IN [ODBC]
[ODBC;Driver={Microsoft ODBC for Oracle};UID=oracle;PWD=oracle;SERVER=yourdata;]

将Oracle导入到Access
连接串
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/temp/db1.mdb;Persist Security Info=False
SQL语句
SELECT * into tablename FROM Tab1 IN [ODBC]
[ODBC;Driver={Microsoft ODBC for Oracle};UID=oracle;PWD=oracle;SERVER=yourdata;]

DBase 5.0
DBASE IV
FoxPro 3.0
Paradox 7.X
Excel 8.0
text;HDR=YES;FMT=Delimited

SELECT * into aaa
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:/temp/";User ID=Admin;Password=;Extended properties=Text')...[bb#txt]

Excel联接ADO串
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/temp/a.xls;Extended
Properties="Excel 8.0;HDR=Yes;";Persist Security Info=False
Extended Properties参数属性这样写 Excel 5.0;HDR=YES;IMEX=1
IMEX=1就是指混合型转换为文本
SQLServer从Excel取数
SELECT *
FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="C:/temp/b.xls";Extended Properties="Excel 5.0;HDR=Yes;";Persist Security Info=False')...sheet1$

将SQLServer导入到文本文件
连接串
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/temp;Extended Properties="text;HDR=YES;";Persist Security Info=False
SQL语句
SELECT * into aaa.txt FROM Tab1 IN [ODBC]
[ODBC;Driver=SQL Server;UID=sa;PWD=;Server=127.0.0.1;DataBase=Demo;]
要改变分隔符,可以修改
Schema.ini文件。该文件中指明分割符,如:
[yourfile.txt]
...
Format=Delimited(|)
更详细的例子可以参考:微软的Knowledge Base的文章:“Q149090 CC: How to Use Schema.ini for Accessing Text Data”和微软的Knowledge Base的文章:“Q187670 OWTO: Use RDO and ODBC Text Driver to Open a Delimited Text”。

txt导入SQLServer
select * from OpenRowset('MSDASQL', 'Driver={Microsoft Text Driver (*.txt; *.csv)};
DefaultDir=c:/temp;','select * from aaaa.txt')

sql server导出到access
ADOConnection 指向Access
SELECT * into table FROM Tab1 IN [ODBC]
[ODBC;Driver=SQL Server;UID=sa;PWD=;Server=127.0.0.1;DataBase=Demo;]

sql server导出到excel
ADOConnection 指向excel, 用Jet4.0 ,Extended properties设为Excel 8.0
SELECT * into table FROM Tab1 IN [ODBC]
[ODBC;Driver=SQL Server;UID=sa;PWD=;Server=127.0.0.1;DataBase=Demo;]

insert into gds_order select * from gds_order
in [ODBC][ODBC;dsn=jbcmis;User Name=informix;password=informix;]

用SQLServer连接DBF
在SQLServer中执行
SELECT * into bmk
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="e:/share";User ID=Admin;Password=;Extended properties=dBase 5.0')...bmk
这样就可以把e:/share中的bmk.dbf表导入到Sqlserver中,

Access 到 Access
select * into aaa from aaa in 'c::/temp/b.mdb'
用ADOConnection.Execute执行

对foxpro 6.0采取odbc,建立一个数据源
insert into t_d(申请日期,发票序号,序号,日期,发票号,发票种类,发货单id,申请单编号,片区,部门,销售员,客户代码,客户单位,开票名称,客户邮编,客户地址,客户电话,客户税号,客户开户行,客户帐号,开票单位,邮编,地址,电话,税号,开户行,帐号,编号,品名,规格,单位,单价,数量,金额,不含税单价,不含税金额,税额,底价,税率,税率1,红票金额,红票号,发票收件人,收件人地址,收件人电话,收件人邮编,备注,打印标志,制单,复核,审核,标志1,标志,管理模式,警示标志,结算单价,结算标准,扣率,冲减金额,回款金额,少回款,回款差额,欠款金额,欠款数量,来款单序号,主管部门,退票标志,退票日期,发货日期,申请号)
SELECT 申请日期,发票序号,序号,日期,发票号,发票种类,发货单id,申请单编号,片区,部门,销售员,客户代码,客户单位,开票名称,客户邮编,客户地址,客户电话,客户税号,客户开户

来自: 碧血剑, 时间: 2003-07-14 12:59:00, ID: 2027532
to HUANGPEIYAN
贴的好,希望大家都能把自己的心得贴上。
偶这星期结婚,比较忙,所以上来的时间就少了。

来自: jjchen123, 时间: 2003-07-15 8:22:00, ID: 2029165
TO 碧血剑大虾
祝你新婚快乐,记得以后多多上来,帮小弟解决解决问题.

来自: huddle, 时间: 2003-07-15 10:41:00, ID: 2029730
碧血剑兄,恭喜恭喜

来自: zyljruby, 时间: 2003-07-15 10:46:00, ID: 2029750
楼主,抄来的就要拿出来说呀,呵呵,

来自: fz97534, 时间: 2003-07-15 12:58:00, ID: 2030168
AAAAAAAAAAAAAAAAAAAA
VVVVVVVVVVVVVVVVVVVVVV
WWWWWWWWWWWWWWWWWWWWWW
MMMMMMMMMMMMMMMMMMMMM


来自: delp, 时间: 2003-07-15 13:10:00, ID: 2030207
可惜,我从来没用过BatchMove,不好说

来自: xxc, 时间: 2003-07-16 16:50:00, ID: 2034140
各位大虾好:看到你们所说的导入导出功能(EXCEL 与 SQL SERVER)与SQL SERVER 的连接方式都是采用ODBC
难道非采用这种方式不行吗。这种连接方式局限性太大,如果采用adoconnection的
Microsoft OLE DB Provider for SQL Server 建立数据引擎,如:
adoconnection.connectionstring:='Provider=SQLOLEDB.1;Password=ps2000;Persist Security Info=True;User ID=sa;InitialCatalog=XSERP;Data Source=SERVER'
然后把该连接字符保存在文件中,在进行导入与导出时调用该连接符不是更好。为什么非要用ODBC呢?
还是用上种方式不行。如行的话该如何设置。最好有源码。谢谢!

1.sql server导出到excel
ADOConnection 指向excel, 用Jet4.0 ,Extended properties设为Excel 8.0
SELECT * into table FROM Tab1 //下行如何设置。(不用ODBC)
IN [ODBC] [ODBC;Driver=SQL Server;UID=sa;PWD=;Server=127.0.0.1;DataBase=Demo;]

该操作我在用ODBC 能实现。

2.excel导出到 sql server
ADOConnection 指向excel, 用Microsoft OLE DB Provider for SQL Server设为:
Provider=SQLOLEDB.1;Password=ps2000;Persist Security Info=True;User ID=sa;InitialCatalog=XSERP;Data Source=SERVER
//--以下如何设置(不用ODBC)
SELECT * into table FROM Tab1 IN [ODBC]
[ODBC;Driver=SQL Server;UID=sa;PWD=;Server=127.0.0.1;DataBase=Demo;]

我的E-MAIL:xxc99@163.net

来自: 99441dudu, 时间: 2003-07-16 21:05:00, ID: 2034814
总节一下:
===============sql to sql===============
1 : 添加adoconnect_AT 控件, 连接到目的数据库ntserver-it-----即被倒入的数据库
2 :ADoconnect_AT.Execute('select * INTO goodsdu FROM '
+'OPENDATASOURCE(''SQLOLEDB'',''Data Source=ntserver;User ID=sa;Password=99441dudu'').table_dudu.dbo.goods');
showmessage('已经从ntserver 倒内容 ntserver-it 的 goodsdu ,即在ntserver-it 上 备份了 goods表 ');
//insert 用发跟上面一样,聪明的人该知道有什么用了把
3 :其他的如此类推
============access to access ==========
1 : 添加adoconnect_AT_acc 控件, 连接到目的数据库DU_acc.mdb-----即被倒入的数据库
2 :self.ADO4.Execute('select * into aaa from goods in ''C:/DU_acc2.mdb''');
showmessage('ok access to access ');
=========想看其它的=====
1.打开数据哭sql2000 索引输入 OPENDATASOURCE
2.其它的你也来试一下,期待你的精彩代码
3.本人笨只有这么多了----2003-7-16


来自: supergq, 时间: 2003-07-17 14:27:00, ID: 2036991
我也学到不少东西啊!!!!!1

来自: microding, 时间: 2003-07-17 22:05:00, ID: 2038240
从Excel导数据到SQL2000中的出错:
SELECT * FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="C:/INVB/b.xls";Extended Properties="Excel 5.0;HDR=Yes;";Persist Security Info=False')...sheet1$
====
在SQL-Query中执行出错误信息如下:
服务器: 消息 7399,级别 16,状态 1,行 1
OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 报错。提供程序未给出有关错误的任何信息。
OLE DB 错误跟踪[OLE/DB Provider 'Microsoft.Jet.OLEDB.4.0' IDBInitialize::Initialize returned 0x80004005: 提供程序未给出有关错误的任何信息。]。


来自: thlt, 时间: 2003-07-18 8:33:00, ID: 2038578
看到您的帖子后觉得受益非浅,但是我用的是本地数据库,也就是说,要将本地的*.xls转换为*.db(Paradox类型),用您的办法能成吗?若能,请再发个帖子,并到这里领分:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1995681 (我的问题也在这里)


来自: tonyjm202, 时间: 2003-07-18 8:51:00, ID: 2038644
路过,确实有收获.

来自: xp2000, 时间: 2003-07-18 9:07:00, ID: 2038700
谢谢分享!

来自: 99441dudu, 时间: 2003-07-20 21:22:00, ID: 2044805
!!!! 这个如何解决哦!
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2041303

来自: 山猫, 时间: 2003-07-21 1:09:00, ID: 2045147
涓囧垎鎰熻阿 .

来自: playboy2002, 时间: 2003-07-21 9:01:00, ID: 2045353
我的问题也是excel 导入到sql server,解决不了,谁能解决请到以下帖子去领分!
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2018026


来自: iwantflywithwinder, 时间: 2003-07-21 9:27:00, ID: 2045467
playboy2002,这个我做过,你注意检查一下你的excel文件左下脚,有sheet1,sheet2的tab页面指示,你的表名对吗?

来自: playboy2002, 时间: 2003-07-23 10:33:00, ID: 2051600
我的错误跟楼上 [gold]microding, [/gold]一个样子,我不知道是什么原因!你们把excel导入到sql 2000的时候,excel要不要设置odbc?我的sql20000里面没有任何表,select * into ,应该可以创建数据表,郁闷ing!

来自: playboy2002, 时间: 2003-07-23 10:36:00, ID: 2051618
iwantflywithwinder, 这位仁兄,你能不能把你的运行环境详细说明。是不是对excel的数据表内容有要求?谢谢了!!!!!

来自: 99441dudu, 时间: 2003-07-23 20:30:00, ID: 2054085
to :碧血剑 txt导入SQLServer完整代码如何写!
sql : ADOconnect1 user id= sa password=''
txt : c:/temp/aa.txt
---------------------------------------



来自: ljh0311, 时间: 2003-07-24 9:58:00, ID: 2055043
insert into Area_codeTable
select * from OpenRowset('MSDASQL', 'Driver={Microsoft Text Driver (*.txt; *.csv)};
DefaultDir=c:/temp;','select * from li.txt')
///出现错误;;
仅当使用了列的列表,并且 IDENTITY_INSERT 为 ON 时,才能在表 'Area_codeTable' 中为标识列指定显式值。
经查为'Area_codeTable'表中有一字段IDH为标识种子,把标识种子去掉,上面那条语句正常执行,如在IDH为种子时如何解决?


来自: mahuan, 时间: 2003-07-24 15:01:00, ID: 2056228
很好啊,我顶,顶,顶.....

来自: iaboy, 时间: 2003-07-24 17:18:00, ID: 2056899
sql->>excel 用ado连  excel->>sql ado连   access->>sql ado连
sql->>access 用ado连 excel->>access ado连  access->>excel ado连
sql->>text 用ado连 excel->>text ado连  access->>文本文件 ado连
text->>sql 用ado
text->>access 用ado
text->>text 用ado 实现数据记录对导。
大家帮帮!能回答出的的到 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2054210
拿分,请高手赐教!小弟都快被整傻了!        
   
  

来自: 山猫, 时间: 2003-07-28 1:07:00, ID: 2063818
发现 这样的好 贴 , 不回对不起楼主.

感谢 楼主.

这才是真正的 程序 员.

1. 有刻苦 钻研 并解决 问题的 能力.

2. 有 把自己 成果 公开 , 共享 和 努力 帮助大家的 热 心.

真正可以 当 大侠.

功夫高并有 侠义心肠.

不象有 点 烂 人. 在网上收集一些 资料 . 刻成盘还要 买 钱.

资料又不是 他自己 想出来的, 他也好 意思要 钱.

和碧血剑 比起来. 那些 人........

来自: lwowo, 时间: 2003-07-28 9:22:00, ID: 2064159
好贴。

来自: Pc 狂迷, 时间: 2003-07-28 17:19:00, ID: 2066095
碧血剑前辈:
我在客户端执行(C与S不在同一台机上):
Select * from OpenRowset('MSDASQL', 'Driver={Microsoft Text Driver
(*.txt; *.csv)}; DefaultDir=F:/;','select * from AA.txt')
会出错:
{
服务器: 消息 7399,级别 16,状态 1,行 1
OLE DB 提供程序 'MSDASQL' 报错。
[OLE/DB provider returned message: [Microsoft][ODBC Text 驱动程序] '(未知的)'不是一个有效的路径。 确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。]
}
如果 A。TXT 在S机上是没问题的,有办法解决这个问题吗?


来自: chen_cch, 时间: 2003-07-29 9:33:00, ID: 2067075
这么经典的东东,一定要顶。虽然我还没有试。

来自: liao_hc, 时间: 2003-07-30 17:22:00, ID: 2071598
用adoconnection1连接sql server
adocommand1中的commandtext为以下字符串:
SELECT * into bbb
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="f:/dbf";User ID=;Password=;Extended properties=dBase 5.0')...chaobiao
其中(chaobiao.dbf为f:/dbf下的文件)
运行后提示以下错误:
'[blue]不正常地定义参数对象.提供了不一致或者不完整的信息[/blue].'
在sql server中的查询分析器运行上述sql语句无异常!!
请问大虾们why????????????????



来自: iwillgo2, 时间: 2003-07-30 17:23:00, ID: 2071605
除了感激还是感激,好贴。

来自: Pc 狂迷, 时间: 2003-07-30 18:01:00, ID: 2071745
to liao_hc:

// 其中(chaobiao.dbf为f:/dbf下的文件)
f:/dbf 是在 SQL SERVER 服务器的硬盘上吗?如果不在是不行的!


来自: lovewzm, 时间: 2003-07-30 18:04:00, ID: 2071760
偶像!

来自: gohigh, 时间: 2003-07-30 18:11:00, ID: 2071787
鍋朵繚瀛樹簡璇ラ〉锛?03k澶у皬鍟婏紒:D


来自: liao_hc, 时间: 2003-07-30 20:29:00, ID: 2072068
to Pc 狂迷:
是在服务器的硬盘上,可是怎么也不行呀。sql语句好象没错,在查询分析器能成功执行! 这种转换能在程序里实现吗?
有谁在程序中用ado方式转换过: dbf--->sql server????????

来自: sunlandbell, 时间: 2003-08-03 9:33:00, ID: 2080206
麻烦大家看一下:
我用的是c/s系统,现在access库在本地库上,需要将本地库中的表更新到服务器的sql数据库中。因此adoconnection需连接access数据库。
adoconnection执行所用语句为:
update t set 密码=职工.密码 from 职工,OPENDATASOURCE ('SQLOLEDB','Data Source=systemdata;User ID=sa;Password=112').分公司.dbo.职工 t where t.职工编号=职工.职工编号

报错为:语法错误(操作符丢失)在查询表达式'职工.密码 from 职工'中。
但此查询在sql查询分析器下在sql不同数据库中试验成功。


来自: flywing, 时间: 2003-08-04 10:33:00, ID: 2081879
to 碧血剑:
我有一个SQL SERVER表大概有300多个字段,
现需导出成DBF,可我用ADOconnection连接至DBase 5.0 ,
导出时提示“字段不能加入记录”,将字段减少为100左右即可,
而我用FOXPRO 5.0也不行,
请问用什么数据库驱动可以支持?

来自: tonyjm202, 时间: 2003-08-11 23:18:00, ID: 2101724
致各位仁兄:
========
提问之前
========

在通过电邮、新闻组或者聊天室提出技术问题前,检查你有没有做到:
1. 通读手册,试着自己找答案。
2. 在FAQ里找答案(一份维护得好的FAQ可以包罗万象:)。
3. 在网上搜索(个人推荐google~~~)。
4. 向你身边精于此道的朋友打听。

来自: wind2000, 时间: 2003-08-13 21:41:00, ID: 2103519
今天又试了一下,已经完成了如下测试:
Access->TXT
Access->DBF
Access->Excel
Access->Access
TXT->Access
DBF->Access
Excel->Access

Oracle->TXT(测试没通过)
Oracle->DBF
Oracle->Access
Oracle->Excel
TXT->Oracle(还没测试)
DBF->Oracle
Access->Oracle
Excel->Oracle

因我不用SQL Server和其它数据库,所以没法测试,相信应该也是可以的!

Oracle->TXT的联接串和上面所说的一个样,如下,可是总会报无法找到文件(文件路径不对),
Microsoft.Jet.OLEDB.4.0认为联接的是个Access数据库,可是Data Source中写的却是个路径,
哪位有使用Oracle的帮忙测测!

//Oracle->TXT
//Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:/;Extended Properties="text;HDR=YES;FMT=Delimited";Persist Security Info=False
procedure TForm1.Button7Click(Sender: TObject);
var
sSql: String;
begin
sSql := 'select * into aaa.txt from lsygb in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bkls;PWD=bkls;SERVER=bkls;]';
with TxtConnection do
begin
Close;
Connected := True;
Execute(sSql);
end;
end;

来自: Worm, 时间: 2003-08-14 12:55:00, ID: 2107585
各位大富翁,你们好!

_______________________form_______________________________
_
来自:wind2000, 时间:2003-8-13 21:41:00, ID:2103519
今天又试了一下,已经完成了如下测试:
Access->TXT
Access->DBF
Access->Excel
Access->Access
TXT->Access
DBF->Access
Excel->Access

Oracle->TXT(测试没通过)
Oracle->DBF
Oracle->Access
Oracle->Excel
TXT->Oracle(还没测试)
DBF->Oracle
Access->Oracle
Excel->Oracle

因我不用SQL Server和其它数据库,所以没法测试,相信应该也是可以的!

Oracle->TXT的联接串和上面所说的一个样,如下,可是总会报无法找到文件(文
件路径不对),
Microsoft.Jet.OLEDB.4.0认为联接的是个Access数据库,可是Data Source中写
的却
是个路径,
哪位有使用Oracle的帮忙测测!

//Oracle->TXT
//Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:/;Extended
Properties="text;HDR=YES;FMT=Delimited";Persist Security Info=False
procedure TForm1.Button7Click(Sender: TObject);
var
sSql: String;
begin
sSql := 'select * into aaa.txt from lsygb in [ODBC][ODBC;Driver=
{Microsoft ODBC
for Oracle};UID=bkls;PWD=bkls;SERVER=bkls;]';
with TxtConnection do
begin
Close;
Connected := True;
Execute(sSql);
end;
end;


______________________end
________________________________

------------------------------请教内容-------------------------------------------------
我有一程序也需要导出功能,如下:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls,
Forms,
Dialogs, StdCtrls, Buttons, DB, ADODB, Grids, DBGridEh,DBGridEhImpExp;

type
TForm1 = class(TForm)
ADOTable1: TADOTable;
DBGridEh1: TDBGridEh;
DataSource1: TDataSource;
ADOConnection1: TADOConnection;
BitBtn1: TBitBtn;
SaveDialog1: TSaveDialog;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);
var
ExpClass:TDBGridEhExportClass;
Ext:String;
begin
SaveDialog1.FileName := 'file1';
// if (ActiveControl is TDBGridEh) then
if SaveDialog1.Execute then
begin
case SaveDialog1.FilterIndex of
1: begin ExpClass := TDBGridEhExportAsText; Ext := 'txt'; end;
2: begin ExpClass := TDBGridEhExportAsXLS; Ext := 'xls'; end;
3: begin ExpClass := TDBGridEhExportAsHTML; Ext := 'htm'; end;
else
ExpClass := nil; Ext := '';
end;
if ExpClass <> nil then
begin
if UpperCase(Copy(SaveDialog1.FileName,Length
(SaveDialog1.FileName)-2,3)) <> UpperCase(Ext) then
SaveDialog1.FileName := SaveDialog1.FileName + '.' + Ext;
if not FileExists(SaveDialog1.FileName) then
SaveDBGridEhToExportFile
(ExpClass,DBGridEh1,SaveDialog1.FileName,True)
else
application.MessageBox('文件已经存在!','导出失
败',MB_ICONERROR);
end;
end;
showmessage('导出以完成。但以上只可以导出三种数据类型,怎样才能使之
导出成dbf和mdb呢?请指教!');
end;
//一定要用ADO,最好还是在DBgridEH的基础上定,也就是我按钮上想实现在
功能!
end.

//此事盛急,小弟以拖数日,查找了多方资料,定请指教! 小弟拜谢+DFW$300。

致 礼!

The glow-worm
worm1997@msn.com

来自: 谢方, 时间: 2003-08-16 14:24:00, ID: 2112940
果然好.
但是请教:
两个数据源都是使用dbExpress技术,一个连接SQLServer服务器,一个连接本地InterBase,如何将SQLServer表格导入到InterBase中?(不通过ODBC),可以使用ClientDataSet

来自: railgunman, 时间: 2003-08-22 16:58:00, ID: 2127831
告诉你一个最快的方法,用SQLServer连接DBF
在SQLServer中执行
SELECT * into bmk
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="e:/share";User ID=Admin;Password=;Extended properties=dBase 5.0')...bmk
--------------------------------------------------------------------------
上面的那句SQL语句确实可以解决一些dbf数据库,但是却打不开VFP的数据库!如果要打开VFP的DBF表的话,那该怎么办呢??????????????

来自: frogshero, 时间: 2003-08-29 10:31:00, ID: 2141843
經典﹐強貼﹐寶庫

来自: yangyong_net, 时间: 2003-09-01 10:21:00, ID: 2147503
请教老兄一个问题,就是通过ADO将DBF数据转换为文本,但我试了好多次都不成功,希望老兄能够帮忙看看;

1.用ADO连接文本,连接串正确,连接成功:然后操作
ADOConnTXT.Execute('SELECT * INTO [Text;Database=D:/TEMP].DBF.TXT FROM [DBase 5.0;Data Source=C:/Program Files/Common Files/Borland Shared/Data].clients');
2.用ADO连接DBF,连接串正确,连接成功:然后操作
ADOConnDBF.Execute('SELECT * INTO [Text;Database=D:/TEMP].DBF.TXT FROM clients');

两种方法都不成功,不清楚什么原因。请老兄帮忙解决一下,救急!


来自: yocheng, 时间: 2003-09-01 10:32:00, ID: 2147554
兩個字 弓+虽=强!

来自: JUMP1972, 时间: 2003-09-01 16:00:00, ID: 2148573
好象只能用在数据库服务器上(如果DBF与SQL不在同一台机器上,就会失败,怎么解决呢?)

来自: zwk6608, 时间: 2003-09-10 13:00:00, ID: 2169359
谢谢楼主!!!
我用这一方法实现了将SQL SERVER 数据库导出为本地的EXCEL 文件
或 DBF 文件。数据库服务器不在同一台机器上也可实现。

来自: sunrainwang, 时间: 2003-09-12 12:53:00, ID: 2174034
首先我的目的是顶一下好贴,让尽可能多的DFW得益。
然后请教各位富翁:
前面所指均是完成在C/S结构下的数据导入导出功能,而且大家都讨论的很详细。但是小弟我现在要求完成在多层结构中客户端的数据导出怎么办?
详情请见此帖:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2172336

来自: zwk6608, 时间: 2003-09-15 14:35:00, ID: 2175659
请问楼主,如果我想从SYBASE 数据库中将表导入SQL SERVER ,
语句如下,
SELECT * into aaa FROM
OPENDATASOURCE('SQLOLEDB',
'DRIVER={Sybase System 11};Server=svr;UID=sa;
PWD=sa;Database=db').db.dbo.table_name
但不能执行,报错为“连接字符串属性无效”
请问SYBASE 连接字符串如何写?

来自: _delphi, 时间: 2003-09-15 14:46:00, ID: 2178401
厉害
佩服

来自: muyexin, 时间: 2003-09-17 14:57:00, ID: 2182936
各位高手,我现在遇到了难题。请帮我看看吧!好心的~

1.我想导出 DBgrid 中的记录,即Adoquery1的结果集,而不是数据表的全部;
2.在导入时我想如果有键值相同的记录,想覆盖或跳过(不覆盖),能做到么,怎么写代码?
3.我想选择路径,让操作者自己选择保存路径,不是固定如C:/temp/aaaa.txt;
4.楼上有朋友提到,ACCESS--TXT 时,'select * into [text;Database=c:/].aaaa.txt from TABLENAME',如果 aaaa.txt 已经存在,则会报错,各位是如何解决的?

请各位在百忙中花少少时间,给我一点思路吧!不胜感激!

来自: muyexin, 时间: 2003-09-17 15:38:00, ID: 2183052
焦急中~

来自: phyyun, 时间: 2003-09-19 11:38:00, ID: 2187042
to muyexin
1,2、自己写程序导到另外一个表里啊。如果有键值重复(你原来那个表没控制?)的情况,那先判断过滤一下,自己写程序,得到没重复的所有记录。
3,那你可以让用户输入保存路径,再导啊,都不是问题啊

来自: hlfdsj, 时间: 2003-09-19 11:44:00, ID: 2187059
高手!

来自: bales, 时间: 2003-09-24 10:04:00, ID: 2196279
用delphi程序如何实现access 到sql库的转变呢?其中access 库包含的字段可分别划分成sql中的两个表。即某些字段导出成sql 的A表,某些字段导出成sql的B表。

来自: icet, 时间: 2003-09-24 18:01:00, ID: 2197732
碧血剑老兄是不是不关注此问题了?

小弟有个问题,关键在第五、六栏,请大虾过去回答领分,分数可以再加,先感谢了:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2186012




来自: vvvguo, 时间: 2003-09-26 12:44:00, ID: 2201517
to wind2000
请教如何从access导到oracle用这个方法?

来自: eelancy, 时间: 2003-10-03 17:28:00, ID: 2212833
我想在DELPHI中,把一个clientdataset的数据导出为excel,还可以用这种异构数据库的方法吗?clientdataset好象对应的引擎啊

来自: homejun, 时间: 2003-10-04 20:53:00, ID: 2214150
to 碧血剑:
碧血剑兄你的第二种方法是从<Mastering Delphi7>里学来的吧,我也正看呢。

来自: yulinsoft, 时间: 2003-10-13 9:07:00, ID: 2226443
hmzz:
这个问题你解决了吗?我出现的错误和你的错误一样...不知道你有没有解决这个问题。请回答我...
简单的告诉我为什么会出现这个错误,你是怎么修正的?谢谢

来自: yulinsoft, 时间: 2003-10-13 13:01:00, ID: 2227119
SELECT * FROM
OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="C:/123.xls";Extended Properties=Excel 8.0;Persist Security Info=False')...Sheet1$
报错:
Server: Msg 7314, Level 16, State 1, Line 1
OLE DB provider 'Microsoft.Jet.OLEDB.4.0' does not contain table 'Sheet1$'.

请各位弄明白的大虾帮我看看

来自: eelancy, 时间: 2003-10-16 23:14:00, ID: 2235279
写成[Sheet1$]试试

来自: gu5, 时间: 2003-10-18 22:03:00, ID: 2238844
楼上的:
要把db改成mdb的又该怎么办(用Access导出时会乱码)

来自: vvvguo, 时间: 2003-10-18 23:08:00, ID: 2238941
access to oracle 一至没有成功,

来自: eelancy, 时间: 2003-10-19 23:10:00, ID: 2240013
如果我想从oracle导出到excel,而ADO连接oracle,怎么实现?
有没有人试过?
这是我的SQL语句:
CREATE TABLE tablename in "D:/temp/test.xls" "Excel 8.0;" AS SELECT * FROM AAA
其中,AAA是Oracle数据库中的表名。
出错信息是“无值提供给一或多个必要参数”。
有人知道这是什么原因吗?

来自: jzpang1980, 时间: 2003-10-20 21:40:00, ID: 2242251
当我执行从SQLSERVER导入EXCEL时,提示找不到可以安装的ISAM,请问是什么原因

谢谢

来自: lyco, 时间: 2003-10-21 0:45:00, ID: 2242458
我是不是太笨了,下面这个语句:
'INSERT INTO OpenDataSource(''Microsoft.Jet.OLEDB.4.0'','
+ '''Data Source="%s";Persist Security Info=False;Extended properties=;'')...%s(%s)' //参数:文件名称、表名、字段列表
+ ' SELECT %s FROM %s '; //参数:字段列表、表名
在“SQL查询分析器”里面执行没有问题,可是在程序里面执行,就会报错:
“不正常的定义参数对象,提供了不一致或不完整的信息”
我的ADOconnection使用的是“SQLOLEDB.1”驱动,
这个错误是怎么回事呢?

哦,忘了说了,我是连到SQLServer里面然后试图把数据从SQLServer倒到Access文件里面,各位大侠,你们说这个语句究竟有什么问题呢?access文件的“Extended properties”究竟应该是什么呢?


来自: jzpang1980, 时间: 2003-10-21 9:47:00, ID: 2242838
当我执行从SQLSERVER导入EXCEL时,提示找不到可以安装的ISAM,请问是什么原因

谢谢

来自: sars1, 时间: 2003-10-21 9:59:00, ID: 2242884
这么老的帖子都出来了!

来自: jzpang1980, 时间: 2003-10-21 14:11:00, ID: 2243651
当我执行从SQLSERVER导入EXCEL时,提示找不到可以安装的ISAM,请问是什么原因

谢谢

来自: vvvguo, 时间: 2003-10-23 8:04:00, ID: 2247194
access to oracle 一至没有成功,那位成功了就给点指导,谢谢

来自: wind2000, 时间: 2003-10-23 16:21:00, ID: 2248585
下面是我的一个程序中的部份代码,是有关Access->Oracle的!
//全局变量
Const
sFilter3 = 'Access文件(*.mdb)|*.mdb';
sExt3 = '.mdb';
...
sFSep1 = '『';
sFSep2 = '』';
sMsg23 = '文件%s不存在,请输入(选择)一个已经存在的文件!';
var
sUID, sPWD, sServer: string;
...
//Access->Oracle;
procedure TfrmExport.Access2Oracle;
var
i : integer;
sSql, sFN, sPath, sMsg, sCNTStr: string;
slTabs, slTmp : TStrings;
begin
with OpenDialog do
begin
Filter := sFilter3;
DefaultExt := sExt3;
if Execute then
begin
sFN := FileName;
sPath := ExtractFilePath(sFN);
sTab2 := ExtractFileName(sFN);
if not FileExists(sFN) then
begin
sMsg := Format(sMsg23, [sFSep1 + sFN + sFSep2]);
Application.MessageBox(PChar(sMsg), PChar(sWarning),
MB_ICONINFORMATION + MB_OK);
palNote.Visible := False; //提示用的:TPanel类
btnOk.Enabled := True;
Exit;
end;
end
else
begin
palNote.Visible := False;
btnOk.Enabled := True;
Exit;
end;
end;
sCNTStr := ADOConnection.ConnectionString;
slTmp := TStringList.Create;
CheckSite(sCNTStr, ';', slTmp);
{这里不用slTmp.DelimitedText是因为联接字符串中有空格,而空格会被认为是间隔符}
//用户名
sUID := GetStr(slTmp, 'USER ID=');
//密码
sPWD := GetStr(slTmp, 'PASSWORD=');
//服务名
sServer := GetStr(slTmp, 'DATA SOURCE=');
slTmp.Free;
slTabs := TStringList.Create;
sCNTStr := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + sFN
+ ';Persist Security Info=True';
with AConnection do
begin
Close;
ConnectionString := sCNTStr;
Connected := True;
GetTableNames(slTabs, False);
end;
//=====下面这段代码是选择数据库中的表=====
bAll := True;
frmChooseField := TfrmChooseField.Create(Application);
with frmChooseField do
begin
ListBoxAllField.Items.Assign(slTabs);
ShowModal;
Release;
end;
//=====上面这段代码是选择数据库中的表=====
if not bExport then //选择表时按了[取消]按钮/不导
begin
palNote.Visible := False;
btnOk.Enabled := True;
Exit;
end;
//整理选择的表名,存到slTabs中
if Trim(sFields) <> '' then
CheckSite(sFields, ',', slTabs)
else
begin
palNote.Visible := False;
btnOk.Enabled := True;
Exit;
end;
//开始循环导数据
for i := 0 to slTabs.Count - 1 do
begin
Application.ProcessMessages;
sTab2 := slTabs;
sTab1 := UpperCase(sTab2);
StatusBar.Panels[0].Text := sTab2;
sSql := 'select * into ' + sTab1
+ ' in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=' + sUID
+ ';PWD=' + sPWD + ';Server=' + sServer + ';] from ' + sTab2;
AConnection.Execute(sSql);
end;
slTabs.Free;
end;

function TfrmExport.CheckSite(const Str, Ch: string; var Mystring: TStrings)
: boolean;
{字符串Str以Ch分隔成几段小字符串,该函数是将这些小字符串提取出来并保存在MyString中
Str:字符串
Ch:分隔符
Mystring:保存分隔后的字符串
返回:分隔后的字符串数大于1则返回True,否则为False}
var
sit, n : integer;
S : string;
begin
Result := True;
MyString.Clear;
S := Str;
n := Length(Ch);
while True do
begin
if Pos(Ch, S) = 0 then
begin
MyString.Add(S);
Break;
end;
sit := Pos(Ch, S);
MyString.Add(Copy(S, 1, sit - 1));
S := Trim(Copy(S, sit + n, Length(S)));
end;
if MyString.Count < 2 then Result := False;
end;

function TfrmExport.GetStr(slTmp: TStrings; sStr: string): string;
var
i : integer;
sTmp : string;
begin
Result := '';
for i := 0 to slTmp.Count - 1 do
begin
sTmp := UpperCase(slTmp);
if Pos(UpperCase(sStr), sTmp) > 0 then
begin
sTmp := StringReplace(sTmp, UpperCase(sStr), '', [rfReplaceAll]);
Result := sTmp;
Break;
end;
end;
end;

来自: zrz0320, 时间: 2003-10-25 16:20:00, ID: 2252315
本人还有以下问题还未解决
请各位大侠帮忙
access>>excel
access>>sql
excel>>txt
这几个要怎样连啊
代码看看

来自: xiami01, 时间: 2003-10-25 16:30:00, ID: 2252332
我没有灌水啊,不让我UP

来自: vvvguo, 时间: 2003-10-25 19:55:00, ID: 2252604
谢谢,wind2000!

来自: ghyghost, 时间: 2003-10-25 21:05:00, ID: 2252706
非常有实用价值的代码

来自: ndust, 时间: 2003-10-25 22:30:00, ID: 2252812
还有一个比较关键的
sqlserver->oracle
oracle->sqlserver
如何解决

来自: vvvguo, 时间: 2003-10-26 9:50:00, ID: 2253071
wind2000,很是遗憾,程序没有通过,告诉我ODBC--调用失败怎么回事阿

来自: LongHai, 时间: 2003-10-26 10:28:00, ID: 2253103
很棒!帅呆了![h4][green]酷逼乐

来自: zrz0320, 时间: 2003-10-26 11:20:00, ID: 2253122
今天又解决了一个
本人还有以下问题还未解决
请各位大侠帮忙
access>>excel
excel>>txt
这几个要怎样连啊


来自: roman_pan, 时间: 2003-10-27 15:54:00, ID: 2255061
我已经试过了,在SQL2000下试运行,可以的

来自: yulinsoft, 时间: 2003-10-27 16:56:00, ID: 2255278
各位还在关注此问题的朋友,这个问题我目前一直没有解决。希望已经解决了的朋友能不能给我留个信箱或者QQ... 我目前的数据库是SQL Server 7.0 我在数据查询器里面查看目标数据库Excel,老是报错!希望能够得到大家的帮忙。
也许只需要点拨一下,一分钟。但我却因此受用一生...哈哈...多谢[^]! 我的信箱:yulinsoft@163.com ymq5583@sina.com.cn yangminqing@hobiotech.com yangminqing@hob-cn.com

来自: wchal, 时间: 2003-10-27 19:35:00, ID: 2255685
sql轉換excel的問題:
所有number的字段内容都变成 '4545454
的形式,我们看见的只有 4545454 是左对齐文本格式.
我要怎样才能计算存储格啊.



来自: icet, 时间: 2003-10-27 20:20:00, ID: 2255762
这是个好贴。
速度确实非常快。
但我用的时候觉得不爽的地方有几个:
 一、 目标表与原始EXCEL表类型的不匹配问题。类似手机号、时间等经常会出错。
 二、 如果EXCEL表没有表头,或者说不是规范的“表格式”的EXCEL表,经常也
会出错。
所以,尽可能的时候偶用这个东东,但没有办法的时候还得用老土的OLE。

来自: weifang, 时间: 2003-10-28 14:24:00, ID: 2257396
excel導入sql server怎麼做呢?

来自: corraly, 时间: 2003-10-29 8:24:00, ID: 2258784
To:碧血剑,我是一个数据库初学者,我按照你的方法在C++ Builder中进行实践(两种都试过了),发现根本不能通过调试,望赐教!

来自: ndust, 时间: 2003-10-29 8:44:00, ID: 2258855
我基本上都试通过了,就是一个问题,oledb 的各个数据库数据源简称是什么?
比如office:'Microsoft.Jet.OLEDB.4.0'
sqlserver:'sqldb'
oracle的是什么?
sybase的是什么?


来自: vvvguo, 时间: 2003-10-29 12:13:00, ID: 2259515
oracle:'MSDAORA'
兄弟,如果你access to oracle的程序调通的话。给个例子,我的信箱是:binyanguo@yahoo.com.cn,我oracle TO ACCESS早就调通了,反过来怎么也不行

来自: vvvguo, 时间: 2003-10-29 13:02:00, ID: 2259661
adoqury1 连接access,
odbc连接ORACLE

procedure TForm1.Button1Click(Sender: TObject);
var
ssql:string;
begin
ssql:='select * into patentinf in "" "ODBC;uid=system;pwd=manager;DSN=patents" from diamond1';
adoquery1.active:=false;
adoquery1.SQL.Clear;
adoquery1.SQL.Add(ssql);
adoquery1.Prepared:=true;
adoquery1.ExecSQL;

end;

end.

运行后出现‘ODBC-调用失败’,请高手指点!!!!!!!

来自: baifeng, 时间: 2003-10-29 13:37:00, ID: 2259786
g z

来自: ndust, 时间: 2003-10-29 14:00:00, ID: 2259847
我在windows 2003的iis中用isapi调用sql7的数据写入excel好使,同样的在NT4下就不好使,告诉sqlserver连接失败,(sql7和nt4在同一台计算机上,windows 2003调有的sql7和NT4在同一台计算机上),谁能解释什么原因?odbc也升过级.
用的是
select * into table from user in [ODBC] [ODBC;Driver=SQL Server;UID=user;PWD=user;Server=data;DataBase=user;]
单独写一个小程序在这两台计算机上全部正常.

可以加分.

来自: micky168, 时间: 2003-10-29 15:56:00, ID: 2260154
碧血剑兄:请问我SQL导出到*.txt 不行呀,帮忙

来自: 积步, 时间: 2003-11-02 15:14:00, ID: 2268045
来自:dirk, 时间:2003-3-21 10:41:00, ID:1699670
这种方法我四年前就发现了,不过那时还没用delphi,在Access中使用的,最近有个人问了
类似的问题,我回答了,好像也没什么人关注嘛!

---------------------------------------------------
確實在DFW離線數據庫中看到過, 但是很快忘了,
謝謝樓主, 否則永遠遺忘了

来自: blyb, 时间: 2003-11-02 17:38:00, ID: 2268228
高手!

来自: ndust, 时间: 2003-11-06 9:02:00, ID: 2275784
1.用ado指向本地盘的xls文件:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:/a.xls;Extended Properties=EXCEL 8.0;Persist Security Info=False
2.接着在ado中执行
select sqrq as 申请日期,dw1 as 申报单位,dw2 as 用料单位,wzbm as 物资编码,wzmc as 物资名称,xhgg as 规格型号,cazh as 材质,jldw as 计量单位,lsjg as 历史价格,spjg as 参考价格,bid_flag as 是否招标,class as 物资类别,sqjg as 申请单价,sqsl as 申请数量,je as 合计金额,dhqx as 到货期限,jh_name as 计划性质,yt_name as 用途,jhq as 计划期,xmh as 项目号,xmmc as 项目名称,cd_name as 产地,bz as 备注 into [sheet1] from table IN [odbc] [odbc;Driver=SQL Server;UID=user;PWD=user;Server=data;DataBase=test;]
如果单独写一个程序,这样执行通过,在d盘生成一个a.xls文件,内容是从数据库中提出的数据。
但是改写为isapi的dll文件,显示odbc连接错误,不能连接到sql server data.
这是什么原因
在windows2003 server下正常,在winnt4 ,windows 2000 server 下显示sql server连接不上的错误。

大侠帮助.

来自: sxhmc, 时间: 2003-11-10 10:20:00, ID: 2283440
各位大侠,我在用这个方SQL导入到EXCEl时,用ADO1连接EXCEL文档,并且是使用JET4.0,已经将ado1.connected:=true;(ado1.connectionstring:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:/hmc.xls;Extended Properties="Excel 8.0;HDR=YES;IMEX=1";Persist Security Info=False');
但在执行如下语句时出现'找不到可安装的ISAM.'
ado1.Execute('select * into sheet1 from m_base in [odbc] [odbc:Driver=SQL Server;UID=sa;PWD=;Server=.;DataBase=ACCOUNTzy;]');
请各位帮我查看一下.谢谢

来自: ndust, 时间: 2003-11-12 14:29:00, ID: 2289067
sxhmc你sqlserver的驱动没有安装吧

我的问题随能够解决呀!
1.用ado指向本地盘的xls文件:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:/a.xls;Extended Properties=EXCEL 8.0;Persist Security Info=False
2.接着在ado中执行
select sqrq as 申请日期,dw1 as 申报单位,dw2 as 用料单位,wzbm as 物资编码,wzmc as 物资名称,xhgg as 规格型号,cazh as 材质,jldw as 计量单位,lsjg as 历史价格,spjg as 参考价格,bid_flag as 是否招标,class as 物资类别,sqjg as 申请单价,sqsl as 申请数量,je as 合计金额,dhqx as 到货期限,jh_name as 计划性质,yt_name as 用途,jhq as 计划期,xmh as 项目号,xmmc as 项目名称,cd_name as 产地,bz as 备注 into [sheet1] from table IN [odbc] [odbc;Driver=SQL Server;UID=user;PWD=user;Server=data;DataBase=test;]
如果单独写一个程序,这样执行通过,在d盘生成一个a.xls文件,内容是从数据库中提出的数据。
但是改写为isapi的dll文件,显示odbc连接错误,不能连接到sql server data.
这是什么原因
在windows2003 server下正常,在winnt4 ,windows 2000 server 下显示sql server连接不上的错误。

大侠帮助.



来自: 暖人心间, 时间: 2003-11-13 9:05:00, ID: 2290607
我也提一个问题吧,很重要啊
从用adotable连接excel文件,在dbgrid中显示,成功!但发现建立adotable的字段实例时,原来excel中的供应商编号,发票号等等都变成float型的(这些大多是数字组成),问题是excel中的发票号一列中包含了“,”“/”“-”等字符,而且不可以去掉的,但在连接adotable中凡是有特殊字符的发票号全部丢失了,怎么办!!

来自: 暖人心间, 时间: 2003-11-13 13:45:00, ID: 2291631
lyco,
你提到的问题,在sql查询器里都正常,而在delphi中出现“不正常的定义参数对象,提供了不一致或不完整的信息”
我也遇到了,不过折腾了半天,我解决了
我将adoquery 的属性ParamCheck 设为 false 默认true,
修改之后这个问题就不出现了,你试试!

来自: salesource, 时间: 2004-03-29 4:48:05, ID: 2292224
哦 是吗

来自: byteson, 时间: 2003-11-13 22:10:00, ID: 2292911
关键就是从EXCELD转到ACCESS或SQLSERVER中时,不能控制字段数据类型,象是带数字和字母的都变成的float型,结果字母或符号都丢了,没法解决,和暖人心间碰到的问题一样

来自: 暖人心间, 时间: 2003-11-15 15:34:00, ID: 2296439
如何用SQL查询直接读取其他数据源
例:
USE ufdata_999_2001
SELECT top 1 'ACCESS'as 数据库, [cSysID], [cID], [cName], [cCaption], [cType], [cValue], [cDefault], [bVisible], [bEnable]
FROM
OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'c:/temp/fq.mdb';'admin';'', accinformation)
union all
SELECT top 1 'SQLOLEDB',a.[cSysID], [cID], [cName], [cCaption], [cType], [cValue], [cDefault], [bVisible], [bEnable]
FROM OPENROWSET('SQLOLEDB','(local)';'sa';'',
'select * from ufdata_999_2001..accinformation') AS a
union all
SELECT top 1 'MSSQL',[cSysID], [cID], [cName], [cCaption], [cType], [cValue], [cDefault], [bVisible], [bEnable]
from accinformation


OPENROWSET
包含访问 OLE DB 数据源中的远程数据所需的全部连接信息。当访问链接服务器中的表时,这种方法是一种替代方法,并且是一种使用 OLE DB 连接并访问远程数据的一次性的、特殊的方法。可以在查询的 FROM 子句中像引用表名那样引用 OPENROWSET 函数。依据 OLE DB 提供程序的能力,还可以将 OPENROWSET 函数引用为 INSERT、UPDATE 或 DELETE 语句的目标表。尽管查询可能返回多个结果集,然而 OPENROWSET 只返回第一个。

语法
OPENROWSET ( 'provider_name'
, { 'datasource' ; 'user_id' ; 'password'
| 'provider_string' }
, { [ catalog.] [ schema.] object
| 'query' }
)

参数
'provider_name'

字符串,它代表在注册表中指定的 OLE DB 提供程序的友好名。provider_name 没有默认值。

'datasource'

字符串常量,它对应着某个特定的 OLE DB 数据源。datasource 是将被传递到提供程序 IDBProperties 接口以初始化提供程序的 DBPROP_INIT_DATASOURCE 属性。通常,这个字符串包含数据库文件的名称、数据库服务器的名称,或者提供程序能理解的用于查找数据库的名称。

'user_id'

字符串常量,它是传递到指定 OLE DB 提供程序的用户名。user_id 为连接指定安全上下文,并将它作为 DBPROP_AUTH_USERID 属性传递进来以初始化提供程序。

'password'

字符串常量,它是将被传递到 OLE DB 提供程序的用户密码。当初始化提供程序时,将 password 作为 DBPROP_AUTH_PASSWORD 属性传递进来。

'provider_string'

提供程序特定的连接字符串,将它作为 DBPROP_INIT_PROVIDERSTRING 属性传递进来以初始化 OLE DB 提供程序。通常 provider_string 封装初始化提供程序所需的所有连接信息。

catalog

目录或数据库的名称,其中驻留着指定的对象。

schema

架构的名称或指定对象的对象所有者名称。

object

对象名称,它唯一地标识出将要操作的对象。

'query'

是字符串常量,发送到提供程序并由提供程序执行。


来自: wzhiwei, 时间: 2003-11-15 16:03:00, ID: 2296503
关 注

来自: ilikemeng, 时间: 2003-11-20 16:40:00, ID: 2305667
to wind2000
Excel->Oracle
应该怎么做啊?谢谢!在线等待!

来自: jingzi, 时间: 2003-11-25 17:36:00, ID: 2316507
如何在远程服务器上实现?麻烦相告!
还有就是我是用vf6.0和sql互相导数据,语句应该怎么写?

来自: chenshaizi, 时间: 2003-11-28 11:50:00, ID: 2320793
异构数据库之间的导入导出示例
异构数据库之间的导入导出示例,abc为表,包含以下导入与导出
MSSQL2EXCEL EXCEL2MSSQL MSSQL2VFP VFP2MSSQL
MSSQL2access access2MSSQL excel2access access2excel
实现部分
procedure TForm1.btn_MSSQL2EXCELClick(Sender: TObject);
begin
//MSSQL2EXCEL
ADOConnection1.ConnectionString:=
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=G:/mysmallexe/excel2sql/yp.xls;'
+'Extended Properties=excel 8.0;Persist Security Info=False';
ADOConnection1.Execute('select * into [Abc] from drug_yk IN [ODBC] [ODBC;Driver=SQL Server;UID=sa;PWD=kcsoft58;Server=127.0.0.1;DataBase=kcsoft_his]');
//把一个MSSQL的数据库表及数据导出到excel中,abc为excel中不存在的表名,drug_yk为MSSQL里的表, sa为用户, kcsoft58为密码 , 127.0.0.1为服务大地址 ,kcsoft_his是数据库名称
ADOConnection1.Execute('insert into [abc] select * from drug_yk in [ODBC] [ODBC;Driver=SQL Server;UID=sa;PWD=kcsoft58;Server=127.0.0.1;DataBase=kcsoft_his]');
//把一个MSSQL的数据库表的记录增加到到excel中,执行以后相当于两倍量的数据,一次是导入,一次是insert
end;
procedure TForm1.btn_EXCEL2MSSQLClick(Sender: TObject);
begin
//EXCEL2MSSQL
ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Password=KCSOFT58;Persist Security Info=True;User ID=SA;Initial Catalog=KCSOFT_HIS;Data Source=CHEN';
ADOConnection1.Execute('SELECT * into [abc] FROM OpenDataSource( '
+QuotedStr('Microsoft.Jet.OLEDB.4.0')+','
+QuotedStr('Data Source="G:/mysmallexe/excel2sql/yp.xls";Extended Properties=excel 8.0;Persist Security Info=False')+')...[Abc]');
end;
procedure TForm1.btn_MSSQL2VFPClick(Sender: TObject);
begin
//MSSQL2VFP
ADOConnection2.ConnectionString:=
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=G:/mysmallexe/excel2sql;'
+'Extended Properties=dBase 5.0;Persist Security Info=False';
ADOConnection2.Execute('select * into Abc.dbf from drug_yk IN [ODBC] [ODBC;Driver=SQL Server;UID=sa;PWD=kcsoft58;Server=127.0.0.1;DataBase=kcsoft_his]');
//把一个MSSQL的数据库表及数据导出到VFP中,Abc.dbf 为VFP中不存在的表名,drug_yk为MSSQL里的表, sa为用户, kcsoft58为密码 , 127.0.0.1为服务大地址 ,kcsoft_his是数据库名称

end;

procedure TForm1.btn_VFP2MSSQLClick(Sender: TObject);
begin
//VFP2MSSQL
ADOConnection2.ConnectionString:='Provider=SQLOLEDB.1;Password=KCSOFT58;Persist Security Info=True;User ID=SA;Initial Catalog=KCSOFT_HIS;Data Source=CHEN';
ADOConnection2.Execute('SELECT * into [abc] FROM OpenDataSource( '
+QuotedStr('Microsoft.Jet.OLEDB.4.0')+','
+QuotedStr('Data Source="G:/mysmallexe/excel2sql";Extended Properties=dBase 5.0;Persist Security Info=False')+')...[Abc]');
end;



procedure TForm1.btn_MSSQL2accessClick(Sender: TObject);
begin
//MSSQL2access
ADOConnection2.ConnectionString:=
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=G:/mysmallexe/excel2sql/Server.MDB;'
+'Persist Security Info=False;Jet OLEDB:Database Password=happynewyear';
ADOConnection2.Execute('select * into Abc from drug_yk IN [ODBC] [ODBC;Driver=SQL Server;UID=sa;PWD=kcsoft58;Server=127.0.0.1;DataBase=kcsoft_his]');

end;

procedure TForm1.btn_access2MSSQLClick(Sender: TObject);
begin
//access2MSSQL
ADOConnection2.ConnectionString:='Provider=SQLOLEDB.1;Password=KCSOFT58;Persist Security Info=True;User ID=SA;Initial Catalog=KCSOFT_HIS;Data Source=CHEN';
ADOConnection2.Execute('SELECT * into [abc] FROM OpenDataSource( '
+QuotedStr('Microsoft.Jet.OLEDB.4.0')+','
+QuotedStr('Data Source="G:/mysmallexe/excel2sql/Server.MDB";Persist Security Info=False;Jet OLEDB:Database Password=happynewyear')+')...[Abc]');

end;

procedure TForm1.btn_excel2accessClick(Sender: TObject);
begin
//excel2access
ADOConnection2.ConnectionString:=
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=G:/mysmallexe/excel2sql/Server.MDB;'
+'Persist Security Info=False;Jet OLEDB:Database Password=happynewyear';
ADOConnection2.Execute('SELECT * into [abc] FROM [excel 8.0;database=G:/mysmallexe/excel2sql/yp.xls].[abc$]');
end;

procedure TForm1.btn_access2excelClick(Sender: TObject);
begin
//access2excel
ADOConnection2.ConnectionString:=
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=G:/mysmallexe/excel2sql/yp.xls;'
+'Extended Properties=excel 8.0;Persist Security Info=False';
ADOConnection2.Execute('SELECT * into abc from [G:/mysmallexe/excel2sql/Server.MDB;pwd=happynewyear].abc');

end;


来自: chenshaizi, 时间: 2003-11-28 15:11:00, ID: 2320794


来自: lushaox, 时间: 2003-11-29 19:41:00, ID: 2324163
To 碧血剑
如果Excle表中有多个工作表[Sheet]时怎样做才能同时将所有的工作表导入到Access中?
谢谢!


来自: chenshaizi, 时间: 2003-11-29 20:39:00, ID: 2324240
lushaox:
一下子导入好像不行,还是一个一个的导入吧

来自: icet, 时间: 2003-11-29 22:28:00, ID: 2324339

写个循环不就可以了?


来自: 酸菜炒牛肉, 时间: 2003-11-29 22:35:00, ID: 2324344
碧血剑大侠:您好!我是DELPHI的初学者,我不知道怎样在DELPHI程序里将EXECL表格的数据导入ORACLE数据库中的一个表里去!求教!!!!
SQL> desc lpeng_cwfk_ly;
Name Null? Type
------------------------------- -------- ----
STORE_NO NUMBER(3)
SUPPL_NO NOT NULL NUMBER(5)
BUYER_UID NOT NULL VARCHAR2(8)
NAME VARCHAR2(40)
PAY_PER NUMBER(3)
NET_AMNT NUMBER(15,2)
PERC NUMBER(6,3)
AMOUNT_VAT NUMBER(15,2)
TOTAL_NET_AMNT NUMBER(15,2)
DUE_DATE DATE
EXCEL 内容
4 23871 联营F4 南宁市安泰食品厂F4联营 30 35,582.46 0.17 6,049.02 41,631.48 03-9-30
4 23872 联营F4 南宁市佳美粮油食品有限公司F4联营 30 43,847.48 0.17 7,454.07 51,301.55 03-9-30
4 23873 联营F4 南宁柏顿波多诺食品有限公司F4联营 30 59,942.92 0.17 10,190.30 70,133.21 03-9-30
4 23874 联营F4 广西皇氏生物工程乳业有限公司F4联营 30 11,788.11 0.17 2,003.98 13,792.09 03-9-30
4 23876 联营F4 南宁市一品轩食品有限责任公司F4联营 30 43,258.86 0.17 7,354.01 50,612.87 03-9-30
4 23877 联营F4 南宁市百益实业有限责任公司F4联营 30 60,034.16 0.17 10,205.81 70,239.97 03-9-30
4 22380 联营F1 南宁市桂乐农业综合开发公司 30 2,773.01 0.13 414.36 3,187.37 03-9-30
4 22804 联营F1 蔬菜联营——耿娟 30 604.82 0.13 90.38 695.20 03-9-30
4 22879 联营F1 南宁市蜜博士蜂产品经营部 30 4,877.16 0.13 728.77 5,605.93 03-9-30
4 23164 联营F1 南宁市韩林食品经营部(联营F1) 30 232.87 0.13 34.80 267.67 03-9-30



来自: lushaox, 时间: 2003-11-30 0:44:00, ID: 2324422
to icet、chenshaizi:
谢谢你们的回答,由于我的excle表在导入的时候是不知道有多少个[sheet]的,工作表的表名也不知道。所以不能判断有几个工作表。请问有什么办法可以直接读取工作表的表名和判断有几个工作表里面有内容。

来自: chenshaizi, 时间: 2003-11-30 12:32:00, ID: 2324736
ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Password=KCSOFT58;Persist Security Info=True;User ID=SA;Initial Catalog=KCSOFT_HIS;Data Source=CHEN';
取所有表名
ADOConnection1.GetTableNames(combobox1.items);
这样得到的表是这样的
如excel有sheet1,sheet2

combobox1.items为
sheet1
sheet1$
sheet2
sheet2$
为什么这样别问我,
取得真正不重复的表名,你可以
for i:=0 to combobox1.items.count-1 to
if i mod 2<>0 then
combobox1.items.add(combobox1.items.string)

来自: lxm7805, 时间: 2003-11-30 16:47:00, ID: 2325018
试了几个,真的不错,有空再慢慢琢磨,谢谢楼主!!!!

来自: lushaox, 时间: 2003-11-30 16:48:00, ID: 2325020
to chenshaizi:
我按你的说法去做,但combobox只有~TMPCLP144421和~TMPCLP158241和数据库的表名啊
是不是需要sql server服务器才能实现呢?

来自: icet, 时间: 2003-11-30 22:55:00, ID: 2325398
to lushaox:
 我替chenshaizi大侠回答回答了。
 你首先要得到EXCEL中所有的sheets的名字。这个方法是首先按照chenshaizi的
方法建立一个连接该EXCEL文件的AdoConnection.
 然后调用这个Adoconnection的gettablenames方法,就如chenshaizi上面所说的
一样,可以把它们放到combobox或者是listbox等TstringList里面去。这里面得到
的结果应该就已经是你的EXCEL文件的所有的sheets名字了(有个$号的。不会重复
)。
 接着你就可以应用楼主的那个语句直接select from 了,或者是opendatasource
了。select 出来了,insert, select into就没有问题了。

来自: doll_paul, 时间: 2003-11-30 23:22:00, ID: 2325409
UP一下吧。不过,ADO连接和操作DBF,不是什么新鲜事啊,楼主!

小弟可能说的不对,别骂我,呵呵~~

来自: 酸菜炒牛肉, 时间: 2003-12-01 12:24:00, ID: 2326140
个位大侠!帮帮忙啊!!!

要将这样的EXCEL数据导入这面的表我应该怎样写代码呢!!给100分!!!!我刚上这论坛,就200分!如果你们觉得少,我还可以再加100!!!!!
SQL> desc lpeng_cwfk_ly;
Name Null? Type
------------------------------- -------- ----
STORE_NO NUMBER(3)
SUPPL_NO NOT NULL NUMBER(5)
BUYER_UID NOT NULL VARCHAR2(8)
NAME VARCHAR2(40)
PAY_PER NUMBER(3)
NET_AMNT NUMBER(15,2)
PERC NUMBER(6,3)
AMOUNT_VAT NUMBER(15,2)
TOTAL_NET_AMNT NUMBER(15,2)
DUE_DATE DATE
EXCEL 内容
4 23871 联营F4 南宁市安泰食品厂F4联营 30 35,582.46 0.17 6,049.02 41,631.48 03-9-30
4 23872 联营F4 南宁市佳美粮油食品有限公司F4联营 30 43,847.48 0.17 7,454.07 51,301.55 03-9-30
4 23873 联营F4 南宁柏顿波多诺食品有限公司F4联营 30 59,942.92 0.17 10,190.30 70,133.21 03-9-30
4 23874 联营F4 广西皇氏生物工程乳业有限公司F4联营 30 11,788.11 0.17 2,003.98 13,792.09 03-9-30
4 23876 联营F4 南宁市一品轩食品有限责任公司F4联营 30 43,258.86 0.17 7,354.01 50,612.87 03-9-30
4 23877 联营F4 南宁市百益实业有限责任公司F4联营 30 60,034.16 0.17 10,205.81 70,239.97 03-9-30
4 22380 联营F1 南宁市桂乐农业综合开发公司 30 2,773.01 0.13 414.36 3,187.37 03-9-30
4 22804 联营F1 蔬菜联营——耿娟 30 604.82 0.13 90.38 695.20 03-9-30
4 22879 联营F1 南宁市蜜博士蜂产品经营部 30 4,877.16 0.13 728.77 5,605.93 03-9-30
4 23164 联营F1 南宁市韩林食品经营部(联营F1) 30 232.87 0.13 34.80 267.67 03-9-30




来自: xuanne, 时间: 2003-12-03 11:54:00, ID: 2330619
楼主用你的第2个方法试,将EXCEL导入ACCESS,
ADOConnection1.Connected := True;
ADOConnection1.Execute('Select * Into 订单表 From [excel 8.0;Database=c:/temp].订单.xls');
运行时报打不开文件c:/temp,已被其他用户打开或权限不够?为何?还有ACCESS中的表是否要先建好还是自动生成?


来自: icet, 时间: 2003-12-03 12:25:00, ID: 2330693
楼上的错了。应该是:
ADOConnection1.Execute('Select * Into 订单表 From [excel 8.0;Database=c:/temp/订单.xls].sheetname$');

来自: xuanne, 时间: 2003-12-03 14:41:00, ID: 2331149
楼上的再请教下,sheetname$是指什么呀?编译说$是无效字符.

来自: icet, 时间: 2003-12-03 20:04:00, ID: 2332018
就是你的sheet的名字加上一个$符号。
编绎说是无效字符不应该吧。
因为这个是在引号之内,DELPHI编绎时不检验的。

来自: icet, 时间: 2003-12-03 20:12:00, ID: 2332032
我试了一下似乎这种形式不行。
你改用opendatasouce算了。那是行的。
试了N遍的。

来自: xuanne, 时间: 2003-12-04 11:43:00, ID: 2333109
涓嶅ソ鎰忔??鍐嶈?鏁欎笅,鎴戠敤涓嬮潰璇?彞杩愯?
ADOConnection2.Execute('SELECT * into abc FROM OpenDataSource(''Microsoft.Jet.OLEDB.4.0'',''Data Source="C:/1.xls";Extended Properties=Excel 8.0'')...[Sheet1$]');
鎶?FROM瀛愬彞璇?硶閿欒?";
鑰岀敤
ADOConnection1.Execute('select * into abc from [excel 8.0;database=''c:/1.xls''].[Sheet1$]');
鎶?涓嶈兘鏇存柊,鏁版嵁搴撴垨瀵硅薄涓哄彧璇?
璇烽棶閭i儴鍒嗛敊浜?璋㈣阿!

来自: xuanne, 时间: 2003-12-04 11:51:00, ID: 2333128
字体不清楚,重发.是这样的,我用下面语句
ADOConnection2.Execute('SELECT * into abc FROM OpenDataSource(''Microsoft.Jet.OLEDB.4.0'',''Data Source="C:/1.xls";Extended Properties=Excel 8.0'')...[Sheet1$]');
报"FROM子句语法出错"
而用
ADOConnection1.Execute('select * into abc from [excel 8.0;database=''c:/1.xls''].[Sheet1$]');
报"不能更新,数据库或对象为只读"
哪位高手指点下,谢谢!

来自: guxizhw, 时间: 2003-12-04 12:01:00, ID: 2333160
收藏先,哈哈,好东西阿,好东西

来自: kofxdm, 时间: 2003-12-04 14:30:00, ID: 2333607
COOL

来自: zyjsjwl, 时间: 2003-12-04 14:56:00, ID: 2333697
为什么会报错?说什么缺少右引号,下面的语句哪儿写错了?
我在查询分析器里一切正常,在程序中写就报错:
with query do
begin
Close;
SQL.Clear;
SQL.Add('SELECT * into tab_Tmp FROM OpenDataSource('+'''');
SQL.Add('Microsoft.Jet.OLEDB.4.0'+''','+'''');
SQL.Add('Data Source="C:";User ID=Admin;Password=;Extended properties=dBase IV'+''')'+'...asd');
try
ExecSQL;
except
...
end;
end;

我也试过用QuotedStr()函数来加引号,也不行

来自: wgjxnm, 时间: 2003-12-04 20:57:00, ID: 2334559
顶到前去

来自: chenshaizi, 时间: 2003-12-04 21:00:00, ID: 2334564
to:zyjsjwl
看清楚了是
ADOConnection1
而不是adoquery1

来自: ququhu, 时间: 2003-12-07 15:56:00, ID: 2339458
各位,看了之后获益颇多我有两件事不是很明白
1.ADOConnection1.Execute,里面的字符串有长度限制吗?
 我写了个,因为字符串太长,它说长度超出限制了,如果这样,可以用什么方法代替呢?
2.我现在想写的是个远程的,只知道某ADOCONNECTTION的连接,其它的一概不知,想从远程 数据库导出成DBF文件。
 连接字符串该怎么引用呢。

来自: chenshaizi, 时间: 2003-12-07 16:01:00, ID: 2339465
ADOConnection1报字符串过长,还真的没有办法,只能 优化你的sql语句了

来自: ququhu, 时间: 2003-12-07 16:50:00, ID: 2339529
我看了一下,从SQL SERVER里面导出数据一般都是这个形式
SELECT * into table FROM Tab1 IN [ODBC]
[ODBC;Driver=SQL Server;UID=sa;PWD=;Server=127.0.0.1;DataBase=Demo;]
用的是ODBC,那么如果不用这个连接呢,连接的后面的那些资料可以从哪里看,我想弄明白这些的真正的意思。
就是想明白 IN [ODBC]
[ODBC;Driver=SQL Server;UID=sa;PWD=;Server=127.0.0.1;DataBase=Demo;]这句话的内容是什么意思,如果有别的连接方法的话,也想知道其它的连接字符串的写法。我想肯定有很多想弄明白到底是怎么回事的朋友吧。


来自: tooper, 时间: 2003-12-08 11:54:00, ID: 2340773
学习,牛!

来自: chenshaizi, 时间: 2003-12-08 11:57:00, ID: 2340776
[ODBC;Driver=SQL Server;UID=sa;PWD=;Server=127.0.0.1;DataBase=Demo;]
Driver:在注册表的
HKEY_LOCAL_MACHINE/Software/ODBC/ODBCINST.INI/ODBC Drivers
下面都是系统里已经安装的odbc驱动。
UID:用户名
PWD:密码
Server:服务器名字或IP
DataBase:数据库名字

来自: zyjsjwl, 时间: 2003-12-09 19:38:00, ID: 2343434
to chenshaizi:
谢谢,我已经解决了,用SQL监视器查出问题来了,呵呵,应该这样写:
with query do
begin
Close;
SQL.Clear;
SQL.Add('SELECT * into tab_Tmp FROM OpenDataSource('+''''
+'Microsoft.Jet.OLEDB.4.0'+''','+''''
+'Data Source=''''C:'''';User ID=Admin;Password=;Extended properties=dBase IV'+''')'+'...asd');
try
ExecSQL;
except
...
end;
end;

BTW:我用的是BDE


来自: chenshaizi, 时间: 2003-12-09 16:59:00, ID: 2343441
解决了就好

来自: Liuren_flf, 时间: 2003-12-10 14:17:00, ID: 2343642
VFP6.0 —— SQL SERVER 如何导入导出呢,哪位大侠调试成功过吗?

来自: zbsfg, 时间: 2003-12-10 14:15:00, ID: 2345401
佩服呀,收藏

来自: tomsyang, 时间: 2003-12-11 11:00:00, ID: 2347113
对不起,我是个菜鸟。刚刚接触delphi,我现在就有一个你们讨论的问题,我就是有文本数据,现在要到入到数据库中,看到这个贴子后,我在实验到入到access中,但是现在报错,希望大家能帮我看看。谢谢。

错误“不能重复定义字段”

来自: tomsyang, 时间: 2003-12-11 11:06:00, ID: 2347131
我写的是:

ADOConnection1.Connected := True;
ADOConnection1.Execute('Select * into insertda From [Text;Database=c:/DataBaseFile].ROAM.TG_CDR10_MWAP.txt');

我的txt是从oracle中导出来的,access中的表insertda要怎么定义呀,是这个出问题了吗?

来自: lyjgs.168, 时间: 2003-12-11 11:16:00, ID: 2347173
不知道这能不能用在异构数据库而且表结构也是异构的情况下呢;
比如:A表的X加Y字段对B表的Y字段,

来自: tomsyang, 时间: 2003-12-11 11:28:00, ID: 2347224
"W20031014991.007","118588899","11","whgw12","999001","4","13579883800","900506","03201003","01","0","02","20031014112449","20031014112452","00","882","0991","991","03","0","0","1103061200542288","T","910","6","W"

上面的就是一条完整的数据,客户提供每个字段倒出来的数据长度不固定。而且第一行不是字段定义请问搂住能解决吗?万分感谢了

来自: ququhu, 时间: 2003-12-11 13:52:00, ID: 2347613
看来只能用ODBC相连了。

楼主,我才知道用BatchMove可以转换成DBF,可是我用ACCESS可以成功,用SQL SERVER没有成功过,同志们用BatchMove把SQL SERVER表变成DBF可行吗?

来自: tomsyang, 时间: 2003-12-11 14:49:00, ID: 2347768
楼主:
我写的上面的语句只能在access中建立那个结构的表,但是数据写不进去,这是什么问题呀

来自: ztplus, 时间: 2003-12-11 17:32:00, ID: 2348231
关注中,顶。
老说我水!

来自: tomsyang, 时间: 2003-12-11 20:28:00, ID: 2348607
楼主好:
大家好:
谢谢大家的帮助,我看到上面的文章解决了好多问题,但是现在我还有一个问题,对大家来说可能是小问题。那就是我再从text->sql server导数据时程序总报超时,我怎么才能解决呀。我想应当不是大的问题。可是我不清楚,还请帮助

来自: wvy, 时间: 2003-12-11 20:48:00, ID: 2348636
感谢楼主,解决了我的问题!再次感谢!

来自: zygtp, 时间: 2003-12-12 2:41:00, ID: 2348979
用我的万能数据备份工具实现异构数据库的数据导入导出,下载地址:http://zygtp.my20.com

来自: zlr_888_888, 时间: 2003-12-12 8:06:00, ID: 2349007


来自: KQH0319, 时间: 2003-12-12 8:34:00, ID: 2349050
学习中..........

来自: tomsyang, 时间: 2003-12-12 19:57:00, ID: 2350973
请问大家,我如果想有选择得导数据该怎么办呢。这个我一直都没有实现。谢谢楼主,谢谢
大家。

来自: tomsyang, 时间: 2003-12-12 20:00:00, ID: 2350980
也就是在

ADOConnection1.Execute('SELECT * into Operator11 FROM Operator IN [ODBC]
[ODBC;Driver=SQL Server;UID=sa;PWD=sa;Server=YangXF;DataBase=jfcx;]');
的那个地方可以放where呀。我一直没有解决。还希望大家帮帮忙

来自: pslgoldgj, 时间: 2003-12-14 7:11:00, ID: 2352625
[blue]给碧血剑鼓掌![/blue][:)][:)]

来自: jettop, 时间: 2003-12-15 9:29:00, ID: 2353918
我试图 MS Sql -> Access 时

adoconnection1.execute('SELECT * into tab1 FROM tab1 IN [ODBC] [ODBC;Driver=SQL Server;UID=sa;PWD=;Server= 10.33.192.168;DataBase=DCMIS;]') ;
时,总提示 ODBC--SQL Server10.33.192.168找不到?
是什么原因?




来自: skywin, 时间: 2003-12-15 9:38:00, ID: 2353935
我猛顶,365下!!!!

来自: wolfish, 时间: 2003-12-16 15:01:00, ID: 2357490
TO: 碧血剑及各位大哥:
我用这种方法是把excel 导入到了sql 但是导入后的 列的序列怎么变了,我用
insert into tablename SELECT * FROM OpenDataSource('''+ 'Microsoft.Jet.OLEDB.4.0'''+','''+ 'Data Source="d:/test.xls";Extended Properties="Excel 8.0;HDR=Yes;";Persist Security Info=False''' + ')...sheet1$
把的:D:/test.xls 插入到 我在数据库中已经建立好的表tablename,就出现类型不匹配,我跟踪了一下是向tablename里插入数据的时候不是按照excel已有的列序 插入的,所以成这样了,问题:
1,怎么让他往sql插入的时候按照excel的列序 插入?
2,我发现插入数据后第一条丢了,这是什么原因?

来自: 林妹妹, 时间: 2003-12-16 17:16:00, ID: 2357963
如何将access 的数据导入到oracle 中? 有无更简单一点的?

来自: llo2003, 时间: 2003-12-16 17:58:00, ID: 2358097
sql server -->> oracle

?????

来自: hunyuan, 时间: 2003-12-17 0:20:00, ID: 2358602
Access To Access
如果源Access有密码怎么办啊?

来自: 林妹妹, 时间: 2003-12-17 8:30:00, ID: 2358701
wind2000 写的access to oracle 程序好复杂我看不懂,只将数据导入以下写法为何出错?
query.sql.add(' SELECT * into bmk ') ;
query.sql.add('FROM OpenDataSource( 'Provider=Microsoft.Jet.OLEDB.4.0; ');
query.sql.add('Data Source=c:/temp/db1.mdb;Persist Security Info=False ' );




来自: Smile.java, 时间: 2003-12-17 9:51:00, ID: 2358983
Access To Access
如果源Access有密码怎么办啊?

Access To Access
如果源Access有密码怎么办啊?

来自: ffanpeng, 时间: 2003-12-17 21:25:00, ID: 2361082
从Excel导数据到SQL2000中的出错:
SELECT * FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="C:/INVB/b.xls";Extended Properties="Excel 5.0;HDR=Yes;";Persist Security Info=False')...sheet1$
====
在SQL-Query中执行出错误信息如下:
服务器: 消息 7399,级别 16,状态 1,行 1
OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 报错。提供程序未给出有关错误的任何信息。
OLE DB 错误跟踪[OLE/DB Provider 'Microsoft.Jet.OLEDB.4.0' IDBInitialize::Initialize returned 0x80004005: 提供程序未给出有关错误的任何信息。]。
这怎摸解决

来自: pacific1979, 时间: 2003-12-18 11:49:00, ID: 2361966
搂主:两个paradox的数据表A和B,不用batchmove如何把A的数据导入到B啊(A和B的结构相同,做到主索引相同的更新,不同的插入) 急需 谢谢搂主了


来自: wchal, 时间: 2003-12-18 12:24:00, ID: 2362065
TO:pacific1979
下面是我程序中的一段程式中的代碼,功能和你說的一至.

MDDATA.ADOQuery2.Close;
MDDATA.ADOQuery2.SQL.Text:='select ZLDLDC.流水號,ZLDLDC.出貨日期 from ZLDLDC,YJJDK where ZLDLDC.流水號=YJJDK.流水號';
MDDATA.ADOQuery2.Open;
ProgressBar1.Min:=0;
ProgressBar1.Max:=MDDATA.ADOQuery2.RecordCount;
ProgressBar1.Position:=0;
for i:=1 to MDDATA.ADOQuery2.RecordCount do//有的更新出貨日期
begin
ProgressBar1.Position:=ProgressBar1.Position+1;
MDDATA.ADOQuery1.Close;
MDDATA.ADOQuery1.SQL.Text:='update YJJDK set 出貨日期= :RQ where (出貨日期 is NULL)and(流水號= :LSH)';
MDDATA.ADOQuery1.Parameters.ParamByName('LSH').Value:=MDDATA.ADOQuery2.Fields[0].Value;
MDDATA.ADOQuery1.Parameters.ParamByName('RQ').Value:=MDDATA.ADOQuery2.Fields[1].Value;
MDDATA.ADOQuery1.ExecSQL;
MDDATA.ADOQuery2.Next;
end;

MDDATA.ADOQuery1.Close;//一次性插入沒有的
MDDATA.ADOQuery1.SQL.Text:='insert into YJJDK select * from ZLDLDC where ZLDLDC.流水號 not in(select YJJDK.流水號 from YJJDK)';
MDDATA.ADOQuery1.ExecSQL;
//ZLDLDC和YJJDK是兩個表名你的操作只要用SQL語句就可以搞定

来自: Smile.java, 时间: 2003-12-18 15:17:00, ID: 2362554
Access To Access
如果源Access有密码怎么办啊?

Access To Access
如果源Access有密码怎么办啊?

Access To Access
如果源Access有密码怎么办啊?

Access To Access
如果源Access有密码怎么办啊?

非常着急,谢谢各位!

用OpenDataSource方式总提示From语句错误
ADOConnect.Execute('select * into DataUp_Company from OpenDataSource(''Microsoft.Jet.OLEDB.4.0'',''Data Source="c:/test.mdb";Persist Security Info=False;Jet OLEDB:Database Password=hi'')...Data_Company');

来自: 吉祥雨, 时间: 2003-12-18 16:49:00, ID: 2362881
好帖!!!

我也想完成Oracle to Oracle的功能。我还不会用ADO,要想实现有选择的
导入导出应如何做?


来自: memories, 时间: 2003-12-18 18:00:00, ID: 2363049
顶。
强人ing...

来自: chenshaizi, 时间: 2003-12-18 23:15:00, ID: 2363603
to:Smile.java,
来自:chenshaizi, 时间:2003-10-29 22:03:00, ID:2260739 | 编辑
看我的
adoconnection2.connectionstring:='Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data Source=g:/server.xc;Mode=Share Deny None;Extended Properties="";Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password=123456;Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False';
adoconnection2.connected:=true;
ADOConnection2.Execute(
'select * into admina from [G:/server_data.mdb;Pwd=123456].admin');
目标数据库不能存在相同的表



来自:chenshaizi, 时间:2003-10-29 22:04:00, ID:2260749 | 编辑
还有更好的办法
ADOConnection2.connectionstring:='同上'
ADOConnection2.Execute(
'insert into admin select * from [G:/server_data.mdb;Pwd=123456].admin');
同一个表操作
这只是简单的复制操作,主键它不认,

来自: feelfly, 时间: 2003-12-19 9:00:00, ID: 2363771
急问请问如何从sqlserver像这样导入MYSQL?MYSQL只有insert into ..select可以吗?
在线等,谢谢

来自: wind2000, 时间: 2003-12-19 9:17:00, ID: 2363818
1.前一段去兰州出差了,所以有些问题没法及时回答,抱歉!
2.明天去泰港澳游了,高兴,发一段代码上来供大家参考!
3.以前测试过,大部分可以用,但也不敢担保一定可以正常运行,我现在也没有环境重新测试,只好你们自已试试了,有些参数自已要改的,我就不写了,有什么问题等半个月后我再来看看!

[FRM]
object Form1: TForm1
Left = 194
Top = 126
Width = 544
Height = 375
Caption = '异构数据库数据互导'
Color = clBtnFace
Font.Charset = GB2312_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = '宋体'
Font.Style = []
OldCreateOrder = False
OnCloseQuery = FormCloseQuery
PixelsPerInch = 96
TextHeight = 12
object labTime: TLabel
Left = 48
Top = 312
Width = 6
Height = 12
end
object GroupBox1: TGroupBox
Left = 8
Top = 8
Width = 220
Height = 153
Caption = ' Access '
TabOrder = 0
object Button1: TButton
Left = 15
Top = 23
Width = 90
Height = 25
Caption = 'Access->TXT'
TabOrder = 0
OnClick = Button1Click
end
object Button3: TButton
Left = 15
Top = 55
Width = 90
Height = 25
Caption = 'Access->DBF'
TabOrder = 1
OnClick = Button3Click
end
object Button4: TButton
Left = 15
Top = 120
Width = 90
Height = 25
Caption = 'Access->Access'
TabOrder = 3
OnClick = Button4Click
end
object Button2: TButton
Left = 112
Top = 23
Width = 90
Height = 25
Caption = 'TXT->Access'
TabOrder = 4
OnClick = Button2Click
end
object Button5: TButton
Left = 112
Top = 55
Width = 90
Height = 25
Caption = 'DBF->Access'
TabOrder = 5
OnClick = Button5Click
end
object Button9: TButton
Left = 15
Top = 88
Width = 90
Height = 25
Caption = 'Access->Excel'
TabOrder = 2
OnClick = Button9Click
end
object Button10: TButton
Left = 112
Top = 88
Width = 90
Height = 25
Caption = 'Excel->Access'
TabOrder = 6
OnClick = Button10Click
end
end
object GroupBox2: TGroupBox
Left = 256
Top = 8
Width = 217
Height = 153
Caption = ' Oracle '
TabOrder = 1
object Button6: TButton
Left = 16
Top = 88
Width = 90
Height = 25
Caption = 'Oracle->Access'
TabOrder = 2
OnClick = Button6Click
end
object Button7: TButton
Left = 16
Top = 23
Width = 90
Height = 25
Caption = 'Oracle->TXT'
Font.Charset = GB2312_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = '宋体'
Font.Style = []
ParentFont = False
TabOrder = 0
OnClick = Button7Click
end
object Button8: TButton
Left = 16
Top = 120
Width = 90
Height = 25
Caption = 'Oracle->Excel'
TabOrder = 3
OnClick = Button8Click
end
object Button11: TButton
Left = 16
Top = 55
Width = 90
Height = 25
Caption = 'Oracle->DBF'
TabOrder = 1
OnClick = Button11Click
end
object Button12: TButton
Left = 112
Top = 23
Width = 90
Height = 25
Caption = 'TXT->Oracle'
Font.Charset = GB2312_CHARSET
Font.Color = clWindowText
Font.Height = -12
Font.Name = '宋体'
Font.Style = []
ParentFont = False
TabOrder = 4
OnClick = Button12Click
end
object Button13: TButton
Left = 112
Top = 55
Width = 90
Height = 25
Caption = 'DBF->Oracle'
TabOrder = 5
OnClick = Button13Click
end
object Button14: TButton
Left = 112
Top = 87
Width = 90
Height = 25
Caption = 'Access->Oracle'
TabOrder = 6
OnClick = Button14Click
end
object Button15: TButton
Left = 112
Top = 120
Width = 90
Height = 25
Caption = 'Excel->Oracle'
TabOrder = 7
OnClick = Button15Click
end
end
object StatusBar: TStatusBar
Left = 0
Top = 329
Width = 536
Height = 19
Panels = <
item
Text = '耗时:'
Width = 32
end
item
Width = 100
end
item
Width = 50
end>
SimplePanel = False
end
object Button16: TButton
Left = 24
Top = 176
Width = 90
Height = 25
Caption = 'TXT->DBF'
TabOrder = 3
OnClick = Button16Click
end
object AccessConnection: TADOConnection
ConnectionString =
'Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source=E:/Delp' +
'hilx/ADOSQL/PH/demo.mdb;Persist Security Info=True'
LoginPrompt = False
Mode = cmShareDenyNone
Provider = 'Microsoft.Jet.OLEDB.4.0'
OnExecuteComplete = AccessConnectionExecuteComplete
OnWillExecute = AccessConnectionWillExecute
Left = 228
Top = 95
end
object ExcelConnection: TADOConnection
ConnectionString =
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:/aaa.xls;Extended' +
' Properties=Excel 8.0;Persist Security Info=False'
LoginPrompt = False
Mode = cmShareDenyNone
Provider = 'Microsoft.Jet.OLEDB.4.0'
OnExecuteComplete = AccessConnectionExecuteComplete
OnWillExecute = AccessConnectionWillExecute
Left = 228
Top = 128
end
object TxtConnection: TADOConnection
ConnectionString =
'Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source=f:/temp' +
';Extended Properties="text;HDR=YES;FMT=Delimited";Persist Securi' +
'ty Info=True'
LoginPrompt = False
Mode = cmShareDenyNone
Provider = 'Microsoft.Jet.OLEDB.4.0'
OnExecuteComplete = AccessConnectionExecuteComplete
OnWillExecute = AccessConnectionWillExecute
Left = 228
Top = 31
end
object DBFConnection: TADOConnection
ConnectionString =
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:/;Extended Proper' +
'ties=DBase 5.0;Persist Security Info=False'
LoginPrompt = False
Provider = 'Microsoft.Jet.OLEDB.4.0'
OnExecuteComplete = AccessConnectionExecuteComplete
OnWillExecute = AccessConnectionWillExecute
Left = 228
Top = 63
end
object OracleConnection: TADOConnection
ConnectionString =
'Provider=MSDASQL.1;Password=bklskf;Persist Security Info=True;Us' +
'er ID=bklskf;Data Source=bkls'
Provider = 'MSDASQL.1'
Left = 228
Top = 161
end
end

[Unit]
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB, ComCtrls;

type
TForm1 = class(TForm)
AccessConnection: TADOConnection;
GroupBox1: TGroupBox;
Button1: TButton;
Button3: TButton;
Button4: TButton;
Button2: TButton;
Button5: TButton;
GroupBox2: TGroupBox;
Button6: TButton;
Button7: TButton;
labTime: TLabel;
StatusBar: TStatusBar;
ExcelConnection: TADOConnection;
Button8: TButton;
TxtConnection: TADOConnection;
Button9: TButton;
Button10: TButton;
Button11: TButton;
DBFConnection: TADOConnection;
Button12: TButton;
Button13: TButton;
Button14: TButton;
Button15: TButton;
OracleConnection: TADOConnection;
Button16: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure AccessConnectionExecuteComplete(Connection: TADOConnection;
RecordsAffected: Integer; const Error: Error;
var EventStatus: TEventStatus; const Command: _Command;
const Recordset: _Recordset);
procedure AccessConnectionWillExecute(Connection: TADOConnection;
var CommandText: WideString; var CursorType: TCursorType;
var LockType: TADOLockType; var CommandType: TCommandType;
var ExecuteOptions: TExecuteOptions; var EventStatus: TEventStatus;
const Command: _Command; const Recordset: _Recordset);
procedure Button7Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure Button13Click(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
procedure Button16Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1 : TForm1;
sSql : string;
iT1, iT2 : integer;

implementation

{$R *.dfm}

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
TxtConnection.Close;
DBFConnection.Close;
AccessConnection.Close;
ExcelConnection.Close;
end;

procedure TForm1.AccessConnectionExecuteComplete(Connection: TADOConnection;
RecordsAffected: Integer; const Error: Error;
var EventStatus: TEventStatus; const Command: _Command;
const Recordset: _Recordset);
begin
//记时1
iT2 := GetTickCount;
StatusBar.Panels[1].Text := FormatFloat('#,##', iT2 - iT1) + '毫秒';
StatusBar.Panels[2].Text := '共导记录:' + IntToStr(RecordsAffected) + '条';
end;

procedure TForm1.AccessConnectionWillExecute(Connection: TADOConnection;
var CommandText: WideString; var CursorType: TCursorType;
var LockType: TADOLockType; var CommandType: TCommandType;
var ExecuteOptions: TExecuteOptions; var EventStatus: TEventStatus;
const Command: _Command; const Recordset: _Recordset);
begin
iT1 := GetTickCount;
end;

//=================================================================
//Access
//Access->TXT
procedure TForm1.Button1Click(Sender: TObject);
begin
sSql := 'select * into [Text;Database=f:/].aaa.txt from demo';
with AccessConnection do
begin
Connected := True;
Execute(sSql);
end;
end;

//Access->DBF
procedure TForm1.Button3Click(Sender: TObject);
begin
sSql := 'select * into aaa in ''f:/'' ''dbase 5.0;'' from demo';
with AccessConnection do
begin
Connected := True;
Execute(sSql);
end;
end;

//Access->Excel
//注意:前一个aaa为Excel文件中的aaa页,后一个aaa为Access文件demo.mdb中的一个表名
procedure TForm1.Button9Click(Sender: TObject);
begin
sSql :=
'select * into aaa from aaa in ''E:/Delphilx/ADOSQL/PH/demo.mdb''';
with ExcelConnection do
begin
Connected := True;
Execute(sSql);
end;
end;

//Access->Access
procedure TForm1.Button4Click(Sender: TObject);
begin
sSql := 'select * into aaa from demo in ''E:/Delphilx/ADOSQL/PH/demo.mdb''';
with AccessConnection do
begin
Connected := True;
Execute(sSql);
end;
end;

//TXT->Access
procedure TForm1.Button2Click(Sender: TObject);
begin
sSql := 'select * into uform from [Text;Database=f:/].form.txt';
with AccessConnection do
begin
Connected := True;
Execute(sSql);
end;
end;

//DBF->Access
procedure TForm1.Button5Click(Sender: TObject);
begin
sSql := 'select * into aaa from aaa in ''f:/'' ''dbase 5.0;''';
with AccessConnection do
begin
Connected := True;
Execute(sSql);
end;
end;

//Excel->Access
//[aaa$]->Excel文件aaa.xls中的aaa页
procedure TForm1.Button10Click(Sender: TObject);
begin
sSql :=
'select * into bbb from [excel 8.0;database=f:/aaa.xls].[aaa$]';
with AccessConnection do
begin
Connected := True;
Execute(sSql);
end;
end;

//=================================================================
//Oracle
//Oracle->Access
procedure TForm1.Button6Click(Sender: TObject);
begin
sSql :=
'select * into ouform from ouform in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bklskf;PWD=bklskf;SERVER=bkls;]';
with AccessConnection do
begin
Connected := True;
Execute(sSql);
end;
end;

//Oracle->TXT
procedure TForm1.Button7Click(Sender: TObject);
begin
sSql := 'select VGH,VXM,VMM into lsygb.txt from (select * from lsygb in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=BKLS;PWD=BKLS;SERVER=BKLS;])';
// sSql :=
// 'select * into form.txt from ouform in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bklskf;PWD=bklskf;SERVER=bkls;]';
with TxtConnection do
begin
Close;
Connected := True;
Execute(sSql);
end;
end;

//Oracle->Excel
procedure TForm1.Button8Click(Sender: TObject);
begin
sSql :=
'select * into aaa from lsygb in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bkls;PWD=bkls;SERVER=bkls;]';
with ExcelConnection do
begin
Connected := True;
Execute(sSql);
end;
end;

//Oracle->DBF
procedure TForm1.Button11Click(Sender: TObject);
begin
sSql :=
'select * into aaa from lsygb in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bkls;PWD=bkls;SERVER=bkls;]';
with DBFConnection do
begin
Connected := True;
Execute(sSql);
end;
end;

//TXT->Oracle
//Oracle数据库注意要将表名大写!不然创建出来的表可以看到表名但无法打开
procedure TForm1.Button12Click(Sender: TObject);
begin
sSql := 'select * into PH_TXT in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bkls;PWD=bkls;SERVER=bkls;] from ph_txt.txt';
with TxtConnection do
begin
Close;
Connected := True;
Execute(sSql);
end;
end;

//DBF->Oracle
procedure TForm1.Button13Click(Sender: TObject);
begin
sSql :=
'select * into PH_DBF in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bkls;PWD=bkls;SERVER=bkls;] from aaa';
with DBFConnection do
begin
Connected := True;
Execute(sSql);
end;
end;

//Access->Oracle
procedure TForm1.Button14Click(Sender: TObject);
begin
sSql :=
'select * into PH_ACCESS in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bkls;PWD=bkls;SERVER=bkls;] from aaa';
with AccessConnection do
begin
Connected := True;
Execute(sSql);
end;
end;

//Excel->Oracle
procedure TForm1.Button15Click(Sender: TObject);
begin
// 'select * into MLB in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=BKLS;PWD=BKLS;Server=BKLS;] from MLB'
//Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:/aaa.xls;Extended Properties=Excel 8.0;Persist Security Info=False
sSql :=
'select * into PH_EXCEL in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bkls;PWD=bkls;SERVER=bkls;] from aaa';
with ExcelConnection do
begin
Connected := True;
Execute(sSql);
end;
end;

procedure TForm1.Button16Click(Sender: TObject);
begin
sSql := 'select * into qxb in ''f:/'' ''dbase 5.0;'' from lsqxb.txt';
with TXTConnection do
begin
// Close;
// ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source=f:/temp;Extended Properties="text;HDR=YES;FMT=Delimited";Persist Security Info=True';
Connected := True;
Execute(sSql);
end;
end;

end.


来自: feelfly, 时间: 2003-12-19 10:58:00, ID: 2364187
急问请问如何从sqlserver像这样导入MYSQL?MYSQL只有insert into ..select可以吗?
在线等,谢谢

来自: zyjsjwl, 时间: 2003-12-19 12:16:00, ID: 2364475
如何将VFP 6.0的表导入SQL SERVER 2000?
怎么总提示有程序以独占方式打开该表

来自: fanronghua, 时间: 2003-12-19 12:22:00, ID: 2364481
你们说要SQL SERVER 2000,我没有,我只有access2000,excel,delphi6,怎么把excel导入到access表里去啊,要不要创建表,我想要字段对应
如:(access)gz-------工资(excel)


来自: jiaojh, 时间: 2003-12-23 10:32:00, ID: 2370786
以上的问题都是解决 ADO 的方法,
有没有可以保存 SocketConnection1 中查询的数据的方法?
Clientdatabaset 是通过DCOMConnection 从服务器端查询到的数据, TABLE 是指向 本地磁盘中绝对路径的DBF表,如何将Clientdatabaset连接到 SocketConnection1中数据保存到本地 TABLE 中.


来自: jiaojh, 时间: 2003-12-23 10:34:00, ID: 2370799
想收到 EMAIL .所以在发一次.

来自: Wizard00, 时间: 2003-12-23 16:29:00, ID: 2372017
收藏,感动!

来自: siow, 时间: 2003-12-24 14:42:00, ID: 2373917
收藏

来自: wuchi, 时间: 2003-12-24 17:14:00, ID: 2374387
请教,照着各位大侠的方法操作了一遍,还是不行。把一个MSSQL的数据库表及数据导出到excel中,提示:“ODBC--连接到‘SQL Server (Lacal)’失败”。是什么问题呢?

DataModule1.ADOConnection2.ConnectionString:=
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:/car/导出数据/表格.xls;'
+'Extended Properties=excel 8.0;Persist Security Info=False';
//表格.xls是已经建立好的excel文件
DataModule1.ADOConnection2.Execute('select * into a from table IN [ODBC] [ODBC;Driver=SQL Server;UID=admin;PWD=;Server=(lacal);DataBase=car;]');
//a为excel中的表名,table为MSSQL里的表, car是数据库名称

来自: WoDing, 时间: 2003-12-24 20:52:00, ID: 2374692
建议哪位大侠写一个笔记,会更系统更完整!

来自: jack_4826, 时间: 2003-12-26 5:13:00, ID: 2375923
mark!

来自: delphi_bbs_lwq, 时间: 2003-12-26 7:42:00, ID: 2375961
我照着各位大侠的方法操作了一遍,还是不行!
在access to oracle 中用到以下的代码出错:
( odbc 连接到{microsoft odbc for oracle } tosun 失败 )
(用ado的AccessConnection 连接access ,bb为access的一个表,st为oracle的一个表 )
var
ssql:string ;
begin
sSql :='select * into st in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle } ; ' +
' UID=zhiguan;PWD=zhiguan;SERVER=tosun ;] from bb';
with AccessConnection do
begin
Connected := True;
Execute(sSql);
end;

来自: jiaojh, 时间: 2003-12-27 14:24:00, ID: 2378859
有没有高手在回答了?
SocketConnection1 和 Clientdatabaset 连接的数据保存问题?

来自: 吉祥雨, 时间: 2003-12-29 11:33:00, ID: 2381245
诚恳请教:
我不会用AdoConnection,现在用query想实现从本地数据库导入到Oracle中,
共有20多个表,用什么方法呢?
如果是从Oracle-->Oracle,又如何实现呢?
希望能够提供代码?谢谢!

来自: skywin, 时间: 2003-12-29 11:42:00, ID: 2381264
我顶先!

来自: chenbin, 时间: 2003-12-29 17:20:00, ID: 2382233
妤间富甯?府鎴戯紒
SQL-->DBF,

insert into OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="d:/";User ID=Admin;Password=;Extended properties=dBase 5.0')...usersq select * from ckusers

DELETE OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="d:/";User ID=Admin;Password=;Extended properties=dBase 5.0')...users
鍙?互鎴愬姛鎵ц?!
闂??锛?
1. 濡備綍鐪熸?鍒犻櫎DBF璁板綍!
2. 鎴戝?浣曠敤SQL璇?彞杩愯?璞?SELECT INTO"銆?鐨勫姛鑳斤紝璁╁畠鍙?互鏂板缓涓?涓狣BF鏂囦欢鍛?紵



来自: jackchin, 时间: 2003-12-30 8:30:00, ID: 2382835
OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="e:/share";User ID=Admin;Password=;Extended properties=dBase 3.0')...bmk
这行中,OpenDataSource的语法不甚明了,Books Online也没提到
第1个参数还有没有其他可选的?
另外,最后...bmk应该是表名,就是.dbf的文件名,可是文件名要是汉字就不行

来自: fanronghua, 时间: 2003-12-30 8:41:00, ID: 2382856
AdoConnection1.ConnectionString:=
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/book1.xls;'
+'Extended Properties=excel 8.0;Persist Security Info=False';
AdoConnection1.Open;
AdoConnection1.Execute('SELECT * into abc from [c:/db1.MDB].abc');

我想把excel导入access,报”外部表不是预期的格式“ 是什么原因?
还有,我把text导入access,他们字段和字段之间是用什么区别的?
在导入的时候可以设置字段的属性吗?
高手请回答!

来自: microding, 时间: 2003-12-30 17:04:00, ID: 2384302
我想问一下大家没有用上述方法来处理实现应用。我在用上述方法是遇到一个头痛的问题,不知各位是否有遇到,又是如何处理的。
问题如下;
环境:MSSQL2000 +OFFICE2000
作业; 把把.xls 文件导入MSSQL2000
现象:导入能成功,问题是导入的如果是字符串,结果导入后数据类型全为char(255),如果导入是数据类型,结果导入后数据类型全float,这样就无直接插入其他表中,总是提示'将截断字符串或二进制数据。将截断字符串或二进制数据。语句已终止。'


来自: athene, 时间: 2004-01-04 17:43:00, ID: 2392333
如何动态打开任一个DBF文件(包括,dbase,foxpro版本的)将其输出到word中,因为foxpro及dbase及vb的报表输出太差了。我去了许多网站,都找不到答案。最好给一个通用的模块。

来自: 小虫~, 时间: 2004-01-08 21:08:00, ID: 2401269
to athene:
鍝?噷鏈夎繖绉嶆ā鍧楀晩锛屽懙鍛碉紒
棣栧厛鏁版嵁搴撴槸浣犺嚜宸辨潵缁存姢鐨勶紝鍙栧緱闇?瑕佺殑鏁版嵁浠ュ悗鍦ㄩ?氳繃ole鍙?互杩炴帴鍜屾帶鍒秝ord锛屽皢鏁版嵁杈撳叆鍒皐ord.
鍙︼紝杩欓噷璁ㄨ?鐨勯兘鏄痙elphi,鍑犱箮娌′汉浣跨敤fox,vb绛夛紒鐜板湪delphi鏈変笉灏戞帶浠跺仛鎶ヨ〃涔熶笉閿欑殑锛?C1=1

来自: huddle, 时间: 2004-01-14 14:10:00, ID: 2410687
看了以上一些关于oracle数据库的例子,似乎都是用microsoft odbc连的
有用其它方法比如ado连接oracle导数据成功的吗,我用odbc连oracle总觉得有点问题

来自: hs125, 时间: 2004-01-14 14:24:00, ID: 2410726
提出一缺陷:
用该方法从源数据库添加数据到目的数据库,无法用事务控制。

来自: hs125, 时间: 2004-01-14 14:26:00, ID: 2410732
想目的数据库添加数据时,能用事务控制吗?

来自: ranyang, 时间: 2004-01-16 11:45:00, ID: 2414651
佩服!好!不错!很棒!
帅呆了!酷逼乐!!

来自: yjhzzgl, 时间: 2004-01-16 15:09:00, ID: 2415149
好!!学习!!!!

来自: cjf1009, 时间: 2004-01-31 20:33:00, ID: 2428998
sql:='Select * Into [Text;Database='+fp+'].'+fn+' from carinfo where cardate>='+adate1+' and cardate<='+adate2+' and zhuitao="是"';
Tdmmain.ADOConn1.Execute(sql);
为什么我导出的记录是0条?而查询是两条的!就是时间这里的问题,把时间条件去了,就可以导出两条了。

来自: Tiger0920, 时间: 2004-02-01 16:13:00, ID: 2429944
各位大哥,小弟想把txt导入access,可是到如后所有字段不变成了以一个字段,
不知如何使用,分隔符,望指点,多谢多谢!!!!!!!!!!

来自: yulinsoft, 时间: 2004-02-03 10:45:00, ID: 2432992
SELECT * FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','DataSource="F:/bbb.xls";Extended Properties=Excel 8.0')...[bbb$]
我在SQL查询器里面执行,报错:OLE DB provider 'Microsoft.Jet.OLEDB.4.0' does not contain table 'bbb$'.
请各位已经精通的朋友略微指点一下。我着急用...谢谢了


来自: lichao9903, 时间: 2004-02-03 16:45:00, ID: 2433950
To yulinsoft
导入并新建表
SELECT * into [创建的表名] FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','DataSource="F:/bbb.xls";Extended Properties=Excel 8.0')...[sheet1$]-->这是工作表的名字
导入已存在的表中
insert into [表名]
SELECT * into [创建的表名] FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','DataSource="F:/bbb.xls";Extended Properties=Excel 8.0')...[sheet1$]-->这是工作表的名字


来自: pyzfl, 时间: 2004-02-03 18:58:00, ID: 2434211
收藏

来自: Rafe, 时间: 2004-02-03 20:14:00, ID: 2434318
在导出前,怎么判断是否存在这个文件名呢?

来自: xianguo, 时间: 2004-02-04 16:11:00, ID: 2435943
我在SQLServer的查询分析器中执行:
SELECT * FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="C:/Test.xls";Extended Properties="Excel 8.0;HDR=Yes;";Persist Security Info=False')...[sheet1$]
出现如下提示:
服务器: 消息 7415,级别 16,状态 1,行 1
已拒绝对 OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 的特殊访问。必须通过链接服务器来访问此提供程序。
为什么?

来自: nclpf, 时间: 2004-02-08 19:19:00, ID: 2443341
顶,谢谢了!

来自: WoDing, 时间: 2004-02-08 19:36:00, ID: 2443369
I up
我顶
woding

来自: kusanagi, 时间: 2004-02-08 22:43:00, ID: 2443655
请大家考虑一下,如果数据文件和sql server不在一台计算机上该怎么写?

来自: szkenpa, 时间: 2004-02-09 22:48:00, ID: 2444005
hao

来自: cdhua, 时间: 2004-02-16 19:57:46, ID: 2456363
楼主access ---> excel怎么做
谢谢!

来自: Justin Ren, 时间: 2004-02-16 20:24:29, ID: 2456383


来自: lesxc, 时间: 2004-02-16 20:52:11, ID: 2456411
非常感谢楼主。
我用了楼主的方法帮我解决了批量的excle表转换成access表。再次谢过。


来自: cdhua, 时间: 2004-02-16 21:10:41, ID: 2456441
有人能帮我吗
access---->excel 表格

来自: markss, 时间: 2004-02-23 1:31:52, ID: 2466963
在DBF->SQL Server中,我使用下面的语句在SQL查询分析器中运行单个语句成功!
exec('insert table1 (col1,col2) select col1,col2 from OpenRowSet(''MSDASQL'',''dsn=import;SourceDB=C:/dbf/;SourceType=DBF'',''select * from C:/dbf/dbf1.dbf '')')

但是在实际中,由于需要批量导入多个不同的DBF
所以使用了procedure(pr_imp),在一个循环中动态改变dbf的名称
exec pr_imp 'C:/dbf/'

这时候就出现错误提示:
服务器: 消息 7405,级别 16,状态 1,行 1
异类查询要求为连接设置 ANSI_NULLS 和 ANSI_WARNINGS 选项。这将确保一致的查询语义。请启用这些选项,然后重新发出查询。

那么应该如何设置上面的两个参数呢?
具体问题请看:http://www.delphibbs.com/delphibbs/dispq.asp?lid=2466769

各位大侠救命阿!!

来自: 小小雪, 时间: 2004-02-29 12:08:30, ID: 2476626
请教各位高手:如何实现从txt更新access表?
txt文件有近30万条记录,固定长度分隔字段,access表以前几个字段为复合索引,根据access表的索引将txt文本文件内容更新或追加到access表。如:access表有下列字段
网点号,账号,未笔日期,金额
demo.txt文件内容为
2001123456782004010100000100
2001123456792004010100005100
如第一笔2001为网点号
12345678为账号
20040101为未笔日期
00000 100为金额
access以“网点号,账号”为索引
用BatchMove可以方便导入数据(加demo.ini)但速度有一点慢,同时要用到BDE,
如用(ADO) SQL如何实现,速度能否控制在4分钟以下?
请各位指点。






来自: 里斯, 时间: 2004-03-18 19:54:40, ID: 2509951
高手请帮忙
我从TXT导入SQL时数据不是我想要的[:(]
我的TXT文件中的数据如下,一般有2-3万条。
2004030517500459015001
2004030517500464580001
2004030517460479451001
[blue]导入语句 select * from OpenRowset('MSDASQL', 'Driver={Microsoft text Driver (*.txt; *.csv)};
DefaultDir=c:/temp;','select * from aaa.txt')
[/blue]结果变成了如下记录?
2.0040305175004591E+21
2.0040305175004646E+21
2.0040305174604795E+21
各位高手帮忙怎么能使他不变?
多谢了。

来自: lilywild, 时间: 2004-03-21 15:39:25, ID: 2513758
我也想实现DBF----->oracle
有谁帮我呀

来自: 19851213, 时间: 2004-03-22 21:52:17, ID: 2516250
支持!感谢碧血剑,向你学习

来自: rena_pan, 时间: 2004-03-24 21:31:02, ID: 2520420
我从Access to SQL Server 出现字段顺序与原来不同了,有什么方法使它与原来的保持一致? 谢谢!

来自: chenjianyyzz, 时间: 2004-03-30 22:37:36, ID: 2530675
我在BDE中配置FOXPRO数据源,原来的FORPRO是没有密码的,
但我设置TABLE.ACTIVE=TRUE时却弹出对话框叫我输入密码和账号,请问该怎么办啊?
麻烦情回复到chenjianyyzz@sohu.com,谢谢

来自: chenjianyyzz, 时间: 2004-03-30 23:22:45, ID: 2530728
急:请问如何在delphi中连visual foxpro 3.0的数据库啊?
麻烦您顺便发一封信到chenjianyyzz@sohu.com
谢谢


来自: lilywild, 时间: 2004-03-31 0:04:46, ID: 2530746
[red]to chenjianyyzz:[/red]
弹出对话框时,不用输入账号和密码,直接按确定就连接到dbf数据源。

来自: jingzi, 时间: 2004-04-01 16:49:16, ID: 2534041
想向大家请教一个问题!我想在sql里面直接读出paradox7的表的内容,我的sql语句是这样写的:
SELECT * FROM OPENDATASOURCE ('Microsoft.Jet.OLEDB.4.0','Data Source="D:/NacuesCA/Fujian";User ID=Admin;Password=;Extended properties=paradox 7.x')...t_tdd
可是提示说ole/db provide returned message:无效的操作,请问这是什么错误,怎么解决呀?

来自: syb1424, 时间: 2004-04-21 22:23:49, ID: 2573182
我是个学生 我现在在做毕业设计,对DELPHI不是很熟 请教一个问题
procedure Tfrm_huifu.SpeedButton1Click(Sender: TObject);
var
datapath:string;
begin
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+getcurrentdir+'/password.mdb;Persist Security Info=False;';
ADOConnection1.Connected:=True;
OpenDialog1.Filter := '恢复文件 (*.mdb)|*.mdb|所有文件 (*.*)|*.*';
//设置备份文件后缀
if OpenDialog1.Execute then
DataPath := OpenDialog1.FileName;
self.adoconnection1.Execute('select * into password from password in '''datapath'''');
showmessage('数据库文件恢复成功!');
end;
这样为什么不行 datapath是变量
我是想动态的去把备份PASSWORD数据库(ACCESS)导入到系统现有的PASSWORD数据库(ACCESS)中去?
谢谢大家帮我

来自: babyrun, 时间: 2004-04-23 8:59:41, ID: 2575894
您的方法可否实现EXCEL表关联ACCESS数据库表中字段的问题?就是说我想把一个EXCEL表中的数据导到ACCESS中去,除此之外根据EXCEL中的某个字段关联ACCESS中某个表的字段,从而形成新的“表”导入到数据库中去?

EXCEL表 ACCESS中表
姓名 班级 班级 年级
---------------------------------------
导入导数据库中形成的表格式为:
姓名 班级 年级

来自: 小明儿, 时间: 2004-04-23 21:59:03, ID: 2577673
不错啊!收藏

来自: huxiaobo, 时间: 2004-04-24 15:21:28, ID: 2578588
TO:碧血剑
SELECT * into
SQL_TableName
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="c:/";User ID=Admin;Password=;Extended properties=dBase 5.0')...DBF_TableName
OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 不包含表 'DBF_TableName'。该表可能不存在,或当前用户没有使用该表的权限。

请问为什么,非常着急,谢谢回答!!!
谢谢!

来自: huxiaobo, 时间: 2004-04-24 15:48:02, ID: 2578639
[red]help!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!![/red]
我把DBF_TableName.dbf文件拷贝到服务器上了,原来是在本地执行的,所以这样的错误,现在我在服务器上执行,出现了新的错误,请帮忙!谢谢


OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 报错。
[OLE/DB provider returned message: Microsoft Jet 数据库引擎找不到对象'DerateMoney'。请确定对象是否存在,并正确地写出它的名称和路径。]


来自: tang67, 时间: 2004-04-24 19:37:42, ID: 2578909
支持!感谢碧血剑,向你学习

来自: chenjianzu, 时间: 2004-04-27 17:43:30, ID: 2584183
好贴,顶!

来自: xml1123, 时间: 2004-04-28 11:43:31, ID: 2585392
to syb1424,
self.adoconnection1.Execute('select * into password from password in '''datapath'''');
改为
self.adoconnection1.Execute('select * into password from password in '''+datapath+'''');



来自: zhuxi168, 时间: 2004-04-28 11:47:42, ID: 2585401
看我的网站吧!
我网站里面有这个东东的源程序。
http://BetterMicrosoft.icpcn.com


来自: professorzhou, 时间: 2004-04-28 23:09:15, ID: 2586648
对access表得操作,从excel导入到access,成功
try
if self.OpenDialog1.Execute then
tmpdir := ExtractFilePath(self.OpenDialog1.FileName) + ExtractFileName(self.OpenDialog1.FileName);
self.Caption := tmpdir;
self.ADOConnection1.Connected:=true;
self.ADOConnection1.Execute('insert into aa(sid,sname,cname) select sid,sname,cname from [excel 8.0;database=' + tmpdir + '].[Sheet1$]');
// self.ADOQuery1.Active := false;
//self.ADOQuery1.SQL.Clear;
// self.ADOQuery1.SQL.Add('select * into aa from [excel 8.0;database=' + tmpdir + '].[Sheet1$]');
// self.ADOQuery1.Open;
except
showmessage('fail');
end;

来自: sqler, 时间: 2004-05-01 17:32:09, ID: 2591148
SELECT * into bmk
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="e:/share";User ID=Admin;Password=;Extended properties=dBase 5.0')...bmk

但是我用就报错说:
OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 报错。
[OLE/DB provider returned message: 外部表不是预期的格式。]
急啊,请高手赐教


来自: yuejun, 时间: 2004-05-10 11:43:19, ID: 2602026
====================== ORACLE -> ACCESS 不成功=============================
Driver={Microsoft ODBC for ORACLE} 用这个根本无法连接ORACLE,
我的机器装了ORACLE 9i , 所以我用 Driver = Oracle in OraHome92;
数据在ORACLE服务器192.168.2.190上, 数据源 orcl190 ;ACCESS 在本地机器上
,以下是我的源码:
AD为TADOConnection,事先链接好ACCESS库,ACCESS的链接如下:
Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source=D:/app/local.mdb;Persist Security Info=True'
执行:
ad.Execute('select * into BK_STORY_TYPE from STORY in [ODBC][ODBC;Driver=Oracle in OraHome92;UID=czh;PWD=cc;SERVER=192.168.2.190;Database=orcl190]');

但是提示说 "Microsoft.Jet.OLEDB.4.0 找不到 STORY 表,或表是否存在",STORY表是属于ORACLE库的, 在这个表是有的, 我感觉跟我用的ODBC DRIVER 有关, 因为楼上所有成功执行ORACLE->ACCESS的案例,都是用{Microsoft ODBC for ORACLE} 的驱动, 不是用ORACLE自已的

来自: vvvguo, 时间: 2004-05-10 14:52:44, ID: 2602473
oracle to access 是成功的,反过来是不成功的,目前还没有找到解决的办法

来自: wmyu, 时间: 2004-05-10 15:06:29, ID: 2602506
好!

来自: c.lu, 时间: 2004-05-13 11:07:41, ID: 2607538
太好啦


来自: vfphome, 时间: 2004-05-14 17:10:35, ID: 2610609
精彩啊,收藏

来自: zzysky, 时间: 2004-05-14 17:16:33, ID: 2610630
放着DTS不用干什么呀?
Select into 效率太低!

来自: 刘麻子, 时间: 2004-05-14 17:28:20, ID: 2610685
谢谢 , 收藏 + 听课

来自: XLPFX, 时间: 2004-05-28 11:14:24, ID: 2632379
这个问题能回答吗?
代码:
http://www.delphibbs.com/delphibbs/DispQ.asp?LID=2631390

来自: XLPFX, 时间: 2004-05-28 11:16:05, ID: 2632394
一个ORACLE导出到DBF文件的问题,不管用什么方法,只要能够实现(经本人验证合格),高分相送!
代码:
http://www.delphibbs.com/delphibbs/DispQ.asp?LID=2631390

来自: compard, 时间: 2004-05-28 11:22:58, ID: 2632414
very good!

来自: XLPFX, 时间: 2004-05-28 16:16:31, ID: 2633059
ACCESS导出到TXT格式如下:
oConn.Execute "SELECT * INTO [Text;DATABASE=C:/].[path.TXT] FROM [systemuser]"
我怎么会出现错误“找不到插入对象ISAM”这是为什么呢?请指教!

来自: XLPFX, 时间: 2004-05-28 17:33:34, ID: 2633212
实现导入导出时,是不是还要引入工程什么的呀,应该引入什么工作呢?

因为,书上的例子能够运行成功,但我自己写之后,却不能成功,出现的错误就像上面一样!

请问,应该怎么实现?

来自: XLPFX, 时间: 2004-05-28 18:09:15, ID: 2633279
以下语句是在ORACLE 的 SQL*PLUS 工作单中执行,我不知道它出错的地点是什么,请问应该怎么写才不会出错;其中,GADATA0003是数据库,EMPLOYEE是表
SELECT * INTO [dBase III;DATABASE=C:/].[path.DBF] FROM gadata0003.employee
*
ERROR 位于第 1 行:
ORA-00905: 缺少关键字

另一种方式:INSERT INTO 也会出错,

insert INTO [dBase III;DATABASE=C:/].[path.DBF] SELECT * FROM gadata0003.employee
*
ERROR 位于第 1 行:
ORA-00903: 无效表名

请问为什么,应该怎么写才不会出错!急急急急急急急急急急急急急急急急急急!!!!

来自: 阳光游子, 时间: 2004-05-28 21:09:16, ID: 2633554
好东西,收藏

来自: zwz_good, 时间: 2004-05-29 10:15:36, ID: 2634098
留用

来自: thenthen, 时间: 2004-06-02 20:25:58, ID: 2642185
我用sql 导出 excel
DataModule1.ADOConnection1.Connected:=false;
DataModule1.ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:/a.xls;Extended Properties=EXCEL 8.0;Persist Security Info=False';
DataModule1.ADOConnection1.Connected:=true ;
出现error '未设定只读属性值'这是怎么回事啊 大虾救我啊

来自: fodou, 时间: 2004-06-07 9:15:53, ID: 2649489
我從excel取數,報錯
伺服器: 訊息 7399,層級 16,狀態 1,行 1
OLE DB Provider 'microsoft.jet.oledb.4.0' 報告了錯誤。
[OLE/DB provider returned message: 找不到可安裝的 ISAM。]

来自: peirenlei, 时间: 2004-06-09 14:43:08, ID: 2654001
太好了,这种方法即快又简单,妙妙

来自: ocxlhy, 时间: 2004-06-17 11:07:01, ID: 2667766
谢谢!!!我帮顶一下!

来自: wjs, 时间: 2004-06-20 7:46:23, ID: 2672581
procedure TFormMain.mnuExportDataDBFClick(Sender: TObject);
var
sql: string;
ADOConnection1: TADOConnection;
pathname: string;
begin
SaveDialog1.DefaultExt := '.DBF';
SaveDialog1.FileName := 'WORK1.DBF';
SaveDialog1.Title := '导出DBASE 数据库文件';
SaveDialog1.Filter := 'DBASE 数据库|*.DBF';

if not SaveDialog1.Execute then exit;

pathname := ExtractFilePath(SaveDialog1.FileName);
ADOConnection1 := TADOConnection.Create(self);
ADOConnection1.LoginPrompt := false;
ADOConnection1.ConnectionString :=
'Provider=MSDASQL.1;' +
'Persist Security Info=False;' +
'Extended Properties=' +
'"Driver={Microsoft Visual FoxPro Driver};' +
'UID=;' +
'SourceDB='+ pathname +
';SourceType=DBF;' +
'Exclusive=No;' +
'BackgroundFetch=Yes;' +
'Collate=Machine;' +
'Null=Yes;' +
'Deleted=Yes;"';

try
ADOConnection1.Connected := true;

pathname := ExtractFileName(SaveDialog1.FileName);
sql := 'selectt * into ' + pathname + ' ' +
'FROM ' + myJob.DataTable_1 + ' ' +
'IN [ODBC] [ODBC;Driver=SQL Server;' +
'UID=sa;' +
'PWD=' + myDatabase.SAPSW + ';' +
'Server=' + myDatabase.Server + ';' +
'DataBase=' + myDatabase.Database + ';]';

ADOConnection1.Execute(sql);
finally
ADOConnection1.Free;
end;

上面程序 运行 出错([Microsoft][obdc visual foxpro driver ]unrecognized verb 不可识别的命令动词),无法导出 dbf ,请个位大侠指点

来自: VGA, 时间: 2004-06-20 16:02:18, ID: 2673019
sql := 'selectt * into ' + pathname + ' ' +
^^
两个 t, 的确不可识别

来自: wjs, 时间: 2004-06-21 9:20:28, ID: 2673388
一般是在ACCESS或是SQLSERVER中查寻,或是汇总,然后生成一个‘记录集’可以显示在GRID里,也可以将这个记录集导出到磁盘中。  

  下面可以导出Xls,DBF,DB,MDB(表),这些功能是由ISAM数据库接口实现,为了导出各种版本的文件,我在MS网站下载了最新的JET4和MDAC6。前者到用于桌面数据库如ACCESS,FOXPRO的组件,后者是实现新版本ADO组件。分别在:

  http://download.microsoft.com/download/access2000/SP/4.0/NT5/EN-US/Jet40SP5_W2K.exe
  http://download.microsoft.com/download/dasdk/install/2.60.6526.3/WIN98Me/CN/mdac_typ.exe

  这些是标准的SQL导出语句:

  select * into [Excel 8.0;database=导出目录].导出表名 from 表

  select * into [FoxPro 2.6;database=导出目录].导出表名 from 表

  select * into [FoxPro 2.5;database=同上].导出表名 from 表

  select * into [dBase III;database=同上].导出表名 from 表

  select * into [Paradox 4.X;database=同上].导出表名 from 表

  select * into [;database=C:/temp/xxx.mdb].导出表名 from 表

我要从 sql2000 -> dbf, 为什么上面的方法不灵呀?

出错的情况 和 斗士兄 说的一样, “ 导出据库 不存在”

来自: longxin21, 时间: 2004-06-28 17:28:33, ID: 2685301
wjs 找的jet4的很有用的,98下需要更新的说[:D]支持[:D]

来自: lijianfeng, 时间: 2004-07-04 13:46:57, ID: 2695042
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
with query1 do
begin
Close;
SQL.Clear;
SQL.Add('SELECT * FROM OpenDataSource('+''''
+'Microsoft.Jet.OLEDB.4.0'+''','+''''
+'Data Source=''''C:/sapdump/0531summary.xls'''';User ID=Admin;Password=;Extended properties=Excel 5.0'+''')'+'...[userlist$]');
try
ExecSQL;
except
open;
end;
end;

end;

不行呀,出现这样的错误,我都搞了很多次了
heterogeneous queries require the ANSI_NULLS and ANSI_WARNIN
S options to be set for the connection this ensures consistens



来自: Tengxing, 时间: 2004-07-05 23:18:12, ID: 2697739
收藏了

来自: 逻辑鱼, 时间: 2004-07-07 9:24:56, ID: 2699745
不知道还有没有人关注了
我花了很长时间看大家发过的帖子
但是发现一个问题
就是从Oracle to dbf 的时候
如果我服务器是Oracle 即用oracle的connection好像由于
sql不自持select * into 可能这个方法就不好
我想知道在 Oracle的 sqlplus里 怎么写

来自: 逻辑鱼, 时间: 2004-07-07 9:33:30, ID: 2699763
以下语句是在ORACLE 的 SQL*PLUS 工作单中执行,我不知道它出错的地点是什么,请问应该怎么写才不会出错;其中,GADATA0003是数据库,EMPLOYEE是表
SELECT * INTO [dBase III;DATABASE=C:/].[path.DBF] FROM gadata0003.employee
*
ERROR 位于第 1 行:
ORA-00905: 缺少关键字

另一种方式:INSERT INTO 也会出错,

insert INTO [dBase III;DATABASE=C:/].[path.DBF] SELECT * FROM gadata0003.employee
*
ERROR 位于第 1 行:
ORA-00903: 无效表名


我也遇到相同问题

来自: zhuxd, 时间: 2004-07-08 20:08:18, ID: 2703127
使用ADOConnection1.Execute方法导入导出数据时怎么显示进度信息

来自: hjc_2004, 时间: 2004-07-19 9:22:04, ID: 2718554
sqlserver 如何连接dbf用什么连
...bmk到底省略了什么

来自: starblue, 时间: 2004-07-19 9:29:33, ID: 2718577
碧先生:
我用你的,ADOConnection.Connected := True;
ADOConnection.Execute('Select * Into abcd From Text;Database=c:/temp].aaaa.txt')
這一方法,還是不行,提示無法寫數據.

来自: pgjeffrey, 时间: 2004-07-19 9:56:06, ID: 2718619
超好,顶!!

来自: uiit, 时间: 2004-07-19 10:05:43, ID: 2718644
现在怎么没有这种人了

从事这个职业太晚了

来自: hongxing_dl, 时间: 2004-07-21 18:07:36, ID: 2723215
>>碧血剑:
能不能说说Oracle的例子??????
导入Oracle或者由Oracle导出到其他数据库????????????

来自: sncel, 时间: 2004-07-22 17:52:32, ID: 2725167
所有操作在MSSQL2000下进行。

//查询多个MSSQL数据库服务器中的数据
SELECT a.au_id,b.au_lname
FROM OPENROWSET('SQLOLEDB','xyly/tbird';'sa';'',
'select * from pubs.dbo.authors') AS a,
OPENROWSET('SQLOLEDB','.';'sa';'sncel',
'select * from pubs.dbo.authors') AS b
where a.au_id=b.au_id

//查询Access数据库
SELECT a.* FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','c:/LogicTemp.mdb';'admin';'', localsereiesinfo) A


//SQL SERVER
SELECT a.* FROM OPENROWSET('MSDASQL','DRIVER={SQL Server};SERVER=xyly/tbird;UID=sa;PWD=',pubs.dbo.authors) AS a
ORDER BY a.au_lname, a.au_fname

//查询Oracle
SELECT a.* FROM OPENROWSET('MSDAORA','hzxj';'tb_power_system';'tbird','select * from ml_scrits') AS a

//Link Server
SELECT a.au_id,b.au_lname FROM OPENQUERY(testlink, 'SELECT * from pubs.dbo.authors') A,pubs.dbo.authors b
where b.au_id=a.au_id


来自: sncel, 时间: 2004-07-22 17:54:12, ID: 2725172
insert into NameList ([学号],[姓名])
SELECT
[学号],
[姓名]

FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="c:/NameList.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')...fg$

来自: wmqiong, 时间: 2004-07-23 9:32:12, ID: 2725955
当用insert into tablename from opendatasource(....) 这种形式从EXCEL导入数据到SQL SERVER中时,如果字段多于2个,就难以控制EXCEL字段的排列顺序,从而导致导入不成功,有什么方法控制字段的顺序吗


来自: gz_ggd, 时间: 2004-07-26 16:18:43, ID: 2731406
碧先生:
看了这么多大侠的文章,可是我将文本文件导入到foxpro这一步都没有做出来,请问怎样做才好?

来自: fansihong, 时间: 2004-07-28 22:21:05, ID: 2735911
不错 不错

来自: bhg007, 时间: 2004-07-29 15:34:26, ID: 2737253
to 碧血剑:精彩!实在是高!

来自: lingyun2003, 时间: 2004-07-30 10:10:12, ID: 2738554
楼主 ,向你致谢!

来自: friendship, 时间: 2004-08-03 11:20:42, ID: 2745692
请问:碧血剑
str1:='''Microsoft.Jet.OLEDB.4.0'',''Data Source="c:/电工数字化管理/mat.xls";User ID=Admin;Password=; Extended properties="Excel 8.0";''';
strsql:= 'SELECT into 物料清单 FROM OpenDataSource('+str1+')...Sheet1$';
MessageDlg(strsql, mtinformation,[mbok], 0);
Rec1.open(strsql,Conn1,3,3,0001);
rec1.close;
总是报错,说什么没权限之类的,我实际的该用户的权限没问题啊

来自: friendship, 时间: 2004-08-03 11:27:40, ID: 2745732
请问:碧血剑
str1:='''Microsoft.Jet.OLEDB.4.0'',''Data Source="c:/电工数字化管理/mat.xls";User ID=Admin;Password=; Extended properties="Excel 8.0";''';
strsql:= 'SELECT * into 物料清单 FROM OpenDataSource('+str1+')...Sheet1$';
MessageDlg(strsql, mtinformation,[mbok], 0);
Rec1.open(strsql,Conn1,3,3,0001);
rec1.close;
总是报错,说什么没权限之类的,我实际的该用户的权限没问题啊
提示拒绝OLE DB 的访问,必须通过链接服务器来访问,为什么,请指教!

来自: lndzh, 时间: 2004-08-05 9:33:46, ID: 2749278
请问:碧血剑
下面的asp页面中要实现SQL server数据库导出到Access,sql语句在查询设计器中执行正常,但在ASP中却提示
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver] ODBC--连接到 'SQL Server127.0.0.1' 失败。
/web/packfile/test.asp, 第 15 行

源代码如下:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>新建网页 1</title>
</head>
<body>
<%@language=VBscript%>
<%
dim conn,rs
set conn=server.createobject("adodb.connection")
conn.open "driver={microsoft access driver (*.mdb)};uid=admin;pwd=;dbq=E:/program/downdata.mdb"
set rs=server.createobject("adodb.recordset")
rs.open "SELECT * into sqldata FROM 省代码 IN ODBC [ODBC;Driver=SQL Server;UID=sa;PWD=;Server=127.0.0.1;DataBase=fordata]",conn
%>
</body>
</html>
问题原文:
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2745314

来自: lwn19820725, 时间: 2004-08-05 10:00:49, ID: 2749338
多好的文章呀支持中。。。

来自: icet, 时间: 2004-08-05 10:32:08, ID: 2749423
应该找个人整理整理这个贴子了,搞得现在经常都还有人讨论,而往往是没有必要的讨论。。。


来自: jackylo2008, 时间: 2004-08-05 11:07:21, ID: 2749540
ATTN: 碧血劍
請問一下,如何將SQL 數據表轉換成与 COBOL 語言開發所使用之數據文件呢?

来自: cdmar79, 时间: 2004-08-07 15:48:44, ID: 2753466
呵呵!没想到英雄所见略同!
我这几天也在琢磨这些!和你的思路几乎一样的!。。。。不过你比我要早想到1年啊!!!佩服佩服!
我还有几个问题不确定!想请教一下!
我是把SQL Server导到Access里,ADOConnect连接到了Access
问题是:
ODBC[ODBC;Driver=SQL Server;UID=sa;PWD=;Server=172.0.0.1;DataBase=Temp;];
这条语句。
当Access执行时,ODBC数据源会不会把SQL Server数据库锁住!
当Access执行完后,ODBC数据源(或Access)会自动析构这个临时的ODBC吗?(我看了看ODBC数据源管理那里是没有的,但是我不敢确定。因为这条语句没有指定ODBC的名称,我想也许ODBC数据源管理那里没反映出来!)
最后,这样做会有什么问题吗?比如内存泄露之类的。。。我发现我在执行了导数据之后机器就慢了不少(不知道是不是心理作用)!


来自: blackbook, 时间: 2004-08-07 16:38:48, ID: 2753548
这个好像很多年以前的大富翁都出现过了阿!我们公司一直都是这么用来做访问多个数据库,和数据库导出到access阿!

来自: homeend0, 时间: 2004-08-16 17:22:40, ID: 2766788
多好的一个方法。我晚上回家试试。我有3000万条记录。原来从interbase导入sql server 2000花了我30个小时。现在还有300万条没有导。晚上回去用这个办法试试会快多少。哈。真是多谢楼主了

来自: hong2002, 时间: 2004-08-16 18:50:54, ID: 2766948
值得收藏,谢.

来自: 朱梦翔, 时间: 2004-08-17 16:47:47, ID: 2768246
不知道上边的办法数据量大了之后,速度会不会很慢

来自: advancer, 时间: 2004-08-19 8:53:22, ID: 2769184
不错。
感谢楼主的无私。

来自: 龙之天涯, 时间: 2004-08-19 12:05:56, ID: 2769779
怎么试了那么久我还是没有办法把文本文件倒入ORACLE的数据库啊

那位成功过了,给点代码参考一下吧

来自: 龙之天涯, 时间: 2004-08-19 18:03:32, ID: 2770536
我试了WIND2000的办法都可以从ORACLE倒出,但是倒入就不行了
那位来指点一下啊

来自: messah, 时间: 2004-08-20 13:33:18, ID: 2771679
各位大哥们,请帮小弟一个忙。源数据在ACCESS数据库中,使用ADO连接,目标数据为pardox数据库,用table组件连接,请问如何将access库中指定表中指定字段的数据插入到指定的pardox数据库文件中去。谢谢。很急很急的。

来自: 龙之天涯, 时间: 2004-08-20 17:55:29, ID: 2772062
看起来这个转入ORACLE的问题还是比较难的哦,
没有人解决过吗??
转出的速度的确是很快,25000条记录,50秒就OK了.

来自: lufang, 时间: 2004-08-25 19:01:34, ID: 2779246
我从ORACLE将某表导入至ACCESS中,按碧血剑的方法如下:
ORACLE8.17,DELPHI6,使用ADO控件,SQL如下:
select * into ouform from DEPT_DICT in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=COMM;PWD=COMM;SERVER=TEST;]
执行后返回如下错误,请问这是怎么回事?如何解决?
“Microsoft Jet 数据库引擎找不到输入表或查询'DEPT_DICT'。确定它是否存在,以及它的名称的拼写是否正确。”

来自: lsnny, 时间: 2004-08-31 15:23:04, ID: 2787333
昨天使用了从sql server转到text。成功!谢谢大家!但不知道怎样去除每条记录头尾得“”,请帮帮忙!!!

来自: homeend0, 时间: 2004-08-31 17:48:27, ID: 2787718
我用sqlserver-->txt时。用下面的语句。结果生成的ttt.txt的内容有双引号,不知道哪位大吓有办法把双引号去掉。我就一个字段,
select aaa into ttt.txt from t_ttt in [ODBC][ODBC;Driver=SQL Server;UID=sa;PWD=;Server=127.0.0.1;DataBase=tttt;]

来自: windwate, 时间: 2004-09-01 12:57:21, ID: 2788839
请问能不能把sqlserver直接转到word呢

来自: lpc, 时间: 2004-09-06 16:29:57, ID: 2795744
请问:以下代码中的“[aaa$]->Excel文件aaa.xls中的aaa页”具体参数或选项是什么?
多谢!
//Excel->Access
//[aaa$]->Excel文件aaa.xls中的aaa页
procedure TForm1.Button10Click(Sender: TObject);
begin
sSql :=
'select * into bbb from [excel 8.0;database=f:/aaa.xls].[aaa$]';
with AccessConnection do
begin
Connected := True;
Execute(sSql);
end;
end;

来自: jackylo2008, 时间: 2004-09-13 16:05:39, ID: 2805314
ATTN: 碧血劍 CC:各位大俠
SQL=> .TXT
如碧血劍所說之方法可以很快導出, 但問題是有几個欗位因想与其他語言銜接, 導出時想用此固定格式: 如單價(7位整數兩位小數): 目前sql里如是: 123.45 , 現在導出的也是123.45 我要導出的是: 000012345 ,請位碧血劍和各位大俠該如何實現呢, 可否在schema.ini 設定呢?

来自: dzj7507, 时间: 2004-09-14 1:12:39, ID: 2806014
大家得讨论很精彩!!
我是新手,试上面得方法时提示说'找不到可安装得ISAM'为何??
高手指点!!

来自: jackylo2008, 时间: 2004-09-14 8:57:51, ID: 2806151
ATTN: 碧血劍 CC:各位大俠
SQL=> .TXT
碧血劍,自從你結了婚以後,怎麼就不見你出來了了? 是否有了老婆就..... 說笑,見諒.
請問一下我要從sql導出成.txt且數據表資料要符合某种條件該如何實現呢? 比如:
無條件時: sql:='Select * into aaa.txt from 應收帳款信息表 IN [ODBC] [ODBC;Driver=SQL Server;UID=sa;PWD=sa;Server=868ser;Database=應收帳款系統;]';
加條件時:1.導出之資料要符合 應收廠商:=變量A,應數年月:=變量B
(中間不通過暫時性表來過渡該如何處理);
2.導出之資料在USER 指定路徑;
3.導出之資料在不同路徑都一樣格式,即不要人為再去修改schema.ini 設定,
(是否先固定好一個schema.ini,再COPY 過去呢,還有否其他方法);
4.導出之格式中某些欗位要固定如此格式:
如單價(7位整數兩位小數): 目前sql里如是: 123.45 ,
現在導出的也是 123.45
我要導出的是: 000012345 ,
如上也是很多開發者較為典型之問題,
請問碧血劍和各位大俠該如何實現較為理想呢? 答OK者重獎!! 哈哈.....

来自: lpc, 时间: 2004-09-14 11:06:21, ID: 2806463
请问:碧血劍,我用以下方法把Excel导入到Access


procedure TForm1.Button1Click(Sender: TObject);
var sSql:string;
begin
sSql :=
'select * into ab1 from [excel 8.0;database=f:/book1.xls].[sheet1$]';
with AccessConnection do
begin
Connected := True;
Execute(sSql);
end;
end;
但出现错误,提示:“表ab1已存在”。不能导入,请帮助。多谢!

来自: eadber, 时间: 2004-09-21 12:07:15, ID: 2817165
同,龙之天涯
我也试验过,DBF,Access导入到Oracle这些方法都行不通啊

来自: babyrun, 时间: 2004-09-23 17:01:12, ID: 2821868
Excel-->Access;Access-->Excel;Excel;txt-->Access;Access-->txt测试成功。怎奈小弟愚笨,Excel导入SQL SERVER2000,报from子句错,各位兄弟帮忙看看是我的sql有问题么?顺便给讲讲SQL SERVER2000导入Excel的具体细节。给出实例最好,小弟在此谢过。

Excel联接ADO串
Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=E:/test/change.xls;Extended Properties=Excel 5.0;Persist Security Info=False
--------------------------------------------------
procedure TForm1.Button1Click(Sender: TObject);
var
sqltxt:String;
begin
Try
sqltxt:='SELECT * into newtable FROM OpenDataSource(Microsoft.Jet.OLEDB.4.0,Data Source="E:/test/change.xls";User ID=Admin;Password=;Extended properties=Excel 5.0)...xactions';

ADOConnetion1.Close;
ADOConnetion1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=E:/test/change.xls;Extended Properties=Excel 8.0;Persist Security Info=False';
ADOConnetion1.Execute(sqltxt);
Application.MessageBox('数据导出成功','系统信息',MB_OK+MB_IconInformation);
except
Application.MessageBox('数据导出失败','系统信息',MB_OK+MB_IconError);
end;

ADOConnetion1.Close;

end;

end.

来自: Djoin, 时间: 2004-09-25 11:24:15, ID: 2824600
导入已存在的表中(txt导入access)
要怎样写啊!我不懂!
各位大哥知道的能告诉我一下吗?谢谢!


来自: protossgffnxk, 时间: 2004-10-06 11:53:11, ID: 2835736
有没有什么办法获得ACCESS文件中的表名

来自: shijicatty, 时间: 2004-10-12 7:54:13, ID: 2844205
我也想问同 Djoin 一样的问题,不能每次导入到SqlServer数据库中都建立一个表吧,我的excel表格是每天都添加薪数据的!!!急!!![:(]

来自: liping0510, 时间: 2004-10-12 11:18:34, ID: 2844713
各位大哥,我在access向txt和excel导出的时候总要出错,请指点
另外在导出时请问adoconnection指向哪儿??
这是access到excel的代码,帮忙看看
ADOConnection4.ConnectionString:=
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:/a.xls;'
+'Extended Properties=excel 8.0;Persist Security Info=False';
ADOConnection4.Execute('SELECT * into user from [e:/db1.MDB;pwd=].user');


来自: zhaoxuncai, 时间: 2004-10-12 16:51:15, ID: 2845394
这个贴真好!!!!

来自: jfyes, 时间: 2004-12-15 16:12:52, ID: 2847689
SQL Server2000提供的DTS比上面的那些方法都快,并且是多线程,导出或入多张表,效率极高,只要是系统提供有相关驱动程序,DTS都能完成。

来自: lamcy, 时间: 2004-10-17 13:22:25, ID: 2851126
楼主说的方法是好用,但是事先需要建立一个空的ACCESS文件(我是要将TXT文件导入ACCESS文件),若指定目录中无ACCESS文件或ACCESS文件中已经有数据好像都会出错。我想是否有方法不用事先建立ACCESS文件或ACCESS文件由DELPHI自动产生?

来自: oyangfong, 时间: 2004-10-25 10:27:49, ID: 2864358


来自: wmyu, 时间: 2004-10-26 13:15:56, ID: 2866722
很不错


来自: jzpang1980, 时间: 2004-10-27 11:40:07, ID: 2868273
我在Acess中执行 SELECT * FROM [excel 8.0;database=c:/a.xls].[1月$]
的时候,发现有几列数据不能够查询出来,显示为#数字!,其实本来是有数据的,不知道为什么显示不出来,但是在Excel中双击以后,重新执行,又可以把这个数字显示出来,但是这一列其它的数据还是和以前一样,显示为#数字!,请问这是什么原因呢!是不是和EXCEL中的设置有关呢?
同样,我在SQLSERVER中执行相应语句的时候,有数据也显示为NULL,这究竟是什么原因呢?
很着急,在线等,如果有哪位大侠能够帮助我解决这个问题,小弟不胜感激!

先谢过了。


来自: aRichMan, 时间: 2004-10-27 12:53:07, ID: 2868374
收藏

来自: scottrayn, 时间: 2004-10-27 15:22:52, ID: 2868661
高人之贴!!,哈哈


来自: 旅, 时间: 2004-10-27 15:47:39, ID: 2868718
将本地DBF导入远端SQLSERVER时报错,请来这里指教:

http://www.delphibbs.com/delphibbs/dispq.asp?lid=2868664

内容如下:
已经在本论坛查了相关的导入语句,但都不能生效 ;(
如:
-----------------------------------------------------
SELECT * into bmk
FROM OpenDataSource( ’Microsoft.Jet.OLEDB.4.0’,
’Data Source=”e:/share”;User ID=Admin;Password=;Extended
properties=dBase 5.0’)...bmk

select * from openrowset('MSDASQL',
'Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=c:/',
'select * from [aa.DBF]')
-----------------------------------------------------

在本地开发端,用ADO连远端SQLSERVER没问题:
在本地用table控件打开dbf没问题
以下为table控件属性:
--------------
tabletype = ttbase
tablename = 'xxx.dbf'
databasename = 'd:/dbf'
--------------
一个连接SQLSERVER的ADO,要执行什么语名才能一次性在SERVER上建一个同名表,并导入?
(设SERVER上已没有同名表,连接的ADO有权限在SQLSERVER加表)
请高手赐教!急!


来自: philchan, 时间: 2004-10-30 10:41:30, ID: 2872630
真的好好,昨天看到,今天就用上了:
if adoUpload.Connected=true then adoUpload.Close;
adoUpload.Execute('insert INTO msg_test (msg_citycode,msg_contents) select msg_citycode,msg_contents FROM OPENDATASOURCE(''SQLOLEDB'',''DRIVER=SQL Server;SERVER=127.0.0.1;UserID=sa;password=sa'').myDB.dbo.msg_processed where msg_type=10000');
adoUpload.Close;

忍不住要说声谢谢。




来自: meteorcc, 时间: 2004-10-31 15:42:52, ID: 2873795
真的很厉害啊,写的好啊!!佩服,佩服!!

来自: jxauyhj, 时间: 2004-11-02 10:13:04, ID: 2875925
高手!学习!

来自: wiwei, 时间: 2004-11-02 15:19:25, ID: 2876566
但我在SQL Server連Oracle卻不能

我想在SQL SERVER 中访问ORACLE
我ORACLE的s_id=’test_ora’
服务器名称是cn_test
用户 zhou 密码 abc123

SELECT a.*
FROM OPENROWSET('MSDAORA',
'DRIVER={ORACLE};SERVER= test_ora;UID=zhou;PWD=abc123,
zhou.BARCODE) AS a
BARCODE是表名
可它报错
服务器: 讯息 7399,层级 16,状态 1,行 1
OLE DB Provider 'MSDAORA' 报告了错误。
[OLE/DB provider returned message: Oracle client and networking components were not found. These components are supplied by Oracle Corporation and are part of the Oracle Version 7.3.3 or later client software installation.

Provider is unable to function until these components are installed.]
各位看看错在什么地方
或者是方法不对,该如何访问,多谢


来自: jwei119, 时间: 2004-11-03 10:04:50, ID: 2877843
好久没有看到如此牛的贴子,大虾们继续上菜,密切关注中..................

来自: tjlqp, 时间: 2004-11-16 0:34:58, ID: 2893476
国人都这样,中国软件业都如此,......中国有戏!!!!!

来自: zsy146, 时间: 2004-11-20 8:32:56, ID: 2899722
看了这贴子,受益颇深!感激。顶顶顶!

来自: delphizdr, 时间: 2004-11-21 15:46:04, ID: 2901212
非常佩服, 不知道碧血剑兄是如何知道的.

来自: zsy146, 时间: 2004-11-25 10:22:44, ID: 2907605
碧血剑兄:
现在我遇到一个这样的问题:我的Access在本地电脑上,而我的数据库在服务器上,我怎样才能把Access中的数据取到Sql数据库中?我发现你提供的语句在服务器端的数据库上运行会发生OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 报错。不知有没有什么解决的办法?


来自: win1122, 时间: 2004-11-29 15:05:49, ID: 2912246
用delphi7写一个com,用于实现sql server2000数据表中的记录输出为Excel文件,如何实现!请帮忙呀!

来自: james_liu, 时间: 2004-11-29 18:53:06, ID: 2912608
我用的不对,找不到安装的ISAM?
怎么回事?

来自: messah, 时间: 2004-12-07 11:16:01, ID: 2921020
碧血剑,你好,我想问下,我有一批pardox数据库文件需要导入到ACCESS数据库中,其中pardox数据库文件是加密码的,而我又是知道密码的,请问我该如何写代码来操作,谢谢。

来自: mxfhhh, 时间: 2004-12-12 11:13:18, ID: 2927841
我也正遇到这种问题,真是很有用,一下子把我这方面的技术提高了很多

来自: mxfhhh, 时间: 2004-12-13 10:41:16, ID: 2928751
goood

来自: 凤冠坡, 时间: 2004-12-13 13:22:07, ID: 2928983
有个问题就是这样复制的数据是没有加上索引,
如何把索引也同时复制呢?!!

来自: jfyes, 时间: 2004-12-15 16:27:30, ID: 2932013
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2931989

来自: jfyes, 时间: 2004-12-15 16:28:13, ID: 2932015
oracle to Ms sql server 中来
http://www.delphibbs.com/delphibbs/dispq.asp?lid=2931989

来自: Carson_zzd, 时间: 2004-12-24 17:39:33, ID: 2943662
to楼主: excel 的版本是2003 sql 的版本为2K
能写一个在SQL查询分析器里就可以执行的代码吗?(读取excel的内容)
SELECT *
FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="d:/FileName.xls";
Extended Properties="Excel 8.0;HDR=Yes;";Persist Security Info=False')...sheet1$
上面的是安装楼主的方式写的,可是查询分析器中提示:
==================================
服务器: 消息 7314,级别 16,状态 1,行 1
OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 不包含表 'sheet1$'。该表可能不存在,或当前用户没有使用该表的权限。
==================================
是什么原因? 希望给予解决

来自: wswcp, 时间: 2004-12-26 17:20:25, ID: 2945036
提示找不到安装的ISAM?
怎么回事?


来自: wswcp, 时间: 2004-12-26 18:43:05, ID: 2945076
这个语句错在哪?能给改改吗?
ADOConnection1.Execute('SELECT * into [FoxPro 3.0;Database=F:/新建文件夹(2)].aaa.dbf FROM v_jfd1 IN [ODBC] [ODBC;Driver=SQL Server;UID=sa;PWD=;Server=127.0.0.1;DataBase=Region;]');

来自: GaveYu, 时间: 2005-01-17 19:40:27, ID: 2968059
经典[:D][:)][^]

来自: bjyplbx, 时间: 2005-01-18 11:13:22, ID: 2968553
Access->oracle

ConStr:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:/Data.mdb;Persist Security Info=false

Sql:
SELECT * into aaa FROM pd_publish_file IN [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=hbkf;PWD=hbkf;SERVER=orakf;]

涓轰粈涔堟?绘槸鎶ラ敊锛岃?鎵句笉鍒拌〃 pd_publish_file锛屽彲鏄疧racle涓?偗瀹氭湁杩欎釜琛ㄣ??


来自: wpr321, 时间: 2005-01-22 13:09:51, ID: 2972450
表已经存在的情况下使用
SELECT * into bmk
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="e:/share";User ID=Admin;Password=;Extended properties=dBase 5.0')...bmk

提示表已经存在,有什么办法可以最近记录,或者是只添加不重复的记录,重复的不添加(可以通过某键值判断)?

来自: yzp, 时间: 2005-01-22 22:22:06, ID: 2972871
在SQL SERVER 2000的查询分析器里运行insert语句是成功的:
insert into a_chengji (bianhao,yuwen,shuxue,yingyu) select bianhao,yuwen,shuxue,yingyu FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="e:/yuan.xls";Extended Properties="Excel 8.0;HDR=Yes;";Persist Security Info=False')...chengji$
在DELPHI中编程如下:
procedure Tf_chengji.BitBtn1Click(Sender: TObject);
var
s_kemuma,s_sql:string;
begin
s_kemuma:='yuwen,shuxue,yingyu'
open_xls.Execute;
s_sql:= 'insert into a_chengji (bianhao,'+s_kemuma+') select bianhao,'+s_kemuma+' FROM OpenDataSource('''+'Microsoft.Jet.OLEDB.4.0'+''''+ ','+''''+'Data Source="'+open_xls.filename+'";Extended Properties="Excel 8.0;HDR=Yes;";Persist Security Info=False'+''''+')...chengji$';
ADOConnection2.ConnectionString:='Provider=SQLOLEDB.1;Persist Security Info=false;User ID=sys;Initial Catalog=tbms;Data ource='+'yuan';
ADOConnection2.Execute(s_sql);
end;
提示错误是:
“已拒绝OLE DB提供程序'Microsoft.jet.OLEDB.4.0'的特殊访问,必须通过链接服务器来访问此提供程序。”
!!!!!!!!!!!!!yuan是服务器,也是计算机名称。我应该如何解决?请指点,谢谢!

来自: yzp, 时间: 2005-01-22 22:30:21, ID: 2972876
各位大哥帮帮忙,非常感谢,碧血剑哥哥,帮我想想,谢谢!
我的QQ:29765025,E-MAILL:yzp_kf@126.com
http://www.delphibbs.com/delphibbs/DispQ.asp?LID=2941605

来自: photodelphi, 时间: 2005-01-28 16:23:35, ID: 2978521
这张贴子这讨论了这么久呀,真是佩服呀!!!

来自: 1979_ql, 时间: 2005-02-02 17:07:26, ID: 2983677
下面我又出现了一个错误,还是SQL——VFP的。请help me
//MSSQL2VFP
ADOConnection2.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/;Extended Properties=dBase 5.0;Persist Security Info=False';
ADOConnection2.Execute('select * into Abc.dbf from spxxk IN [ODBC] [ODBC;Driver=SQL Server;UID=sa;PWD=qianlin;Server=192.168.0.1;DataBase=QLsql]');
//把一个MSSQL的数据库表及数据导出到VFP中,Abc.dbf 为VFP中不存在的表名,spxxk为MSSQL里的表, sa为用户, qianlin为密码 , 192.168.0.1为服务器地址 ,QLsql是ODBC中SQLserver数据源名称
错误提示是:连接到192.168.0.1失败
1。帮我看看这是什么原因
2。DataBase后面跟的是ODBC中SQLserver数据源名称还是SqlServer中数据库的名称。



来自: szseawind, 时间: 2005-02-26 0:10:07, ID: 2997979
好好好!!!!!!!!!!!!!1

来自: 中鼎, 时间: 2005-02-26 8:49:09, ID: 2998045
好东东啊!顶

来自: crossrowman, 时间: 2005-02-26 13:23:39, ID: 2998280
好贴!顶一下

来自: polaris_cn, 时间: 2005-02-27 19:46:31, ID: 2999162
我能实现从excel导入到oracle数据,但是没有办法操作表啊.
我将一个excel文件导入到数据库能够成功,select * from ph_excel能够列出所有记录,但是加上条件就不行了。select * from ph_excel where jf='9999'.说jf不认识.
用 desc ph_excel,可以列出列名来。
:ph_excel中的字段为:
areano varchar2(255),
jf varchar2(255),

来自: sxb_ok, 时间: 2005-02-28 15:19:17, ID: 2999962
没得说的

来自: szseawind, 时间: 2005-03-04 13:24:40, ID: 3002867
GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG

来自: Neo_leaf, 时间: 2005-03-10 18:22:09, ID: 3010758
TO:碧血剑
你好,
感谢你的贡献。。。
我想请教一个问题,
你现在只是实现了数据的导入导出,但是,如果我是不完全导出导入,即:我需要根据条件导出、导入。不知道该怎么办。。。。
把条件写在哪里,
请老大明示。。。。
感激不尽。。。。
我的QQ236309574,
愿意与大家交流上面的内容。

来自: Neo_leaf, 时间: 2005-03-10 18:45:08, ID: 3010790
其实我觉得如果要是能把所要导出/入的数据根据条件来进行操作,那样就更加完美了,
一点小意见

问题讨论没有结束 ...
 
两位
我这里只是做一个通用的导入导出工具。要求Excel能作为一个简单的中介来修改数据库的数据。由此我想做的就是上面的4个条件吧。我认为这就可以了。
还有数据库表也不是都是存在主键。
望大侠们赐教。
 
目的何在?字段不固定的数据库能做什么?
 
每个人设计的数据库都不一样呀。字段有多的有少的意思。
这个通用的工具不是针对特定数据库而导入导出的
而不是字段不固定的数据库.
 
第4个可以采用XML作为中间过渡。
 
EXCWL导入时将其数据列指定对应到数据库表中的字段
 
开发个万能导入程序[:D]
 
问题简化到一个
将修改后的excel数据导入到数据库中
因为数据库表有的没有主键。怎么更新?
 
或者有没有变通的方法
 
多人接受答案了。
 
另开一贴 大家来拿分
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3530704
 

Similar threads

S
回复
0
查看
860
SUNSTONE的Delphi笔记
S
S
回复
0
查看
785
SUNSTONE的Delphi笔记
S
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部