急啊,各位大侠们帮我看看.关于EXCEL 导入SQL 的问题(50分)(50分)

  • 主题发起人 主题发起人 xiagu
  • 开始时间 开始时间
X

xiagu

Unregistered / Unconfirmed
GUEST, unregistred user!
我在SQL中用这个可以用,
insert into test(zt,users,tel,fy)
SELECT zt,users,tel,fy
FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="C:/Documents and Settings/Administrator/桌面/test.xls";Extended Properties="Excel 5.0;HDR=Yes;";Persist Security Info=False')...[sheet1$]
而在DELPHI中且不行,请各位大侠帮我看看错在那里,提示不正常的定义参数.提供了不一致
或不完整的信息.
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('insert into test(zt,users,tel,fy) ');
sql.Add('SELECT zt,user,tel,fy FROM') ;
sql.Add('OpenDataSource("Microsoft.Jet.OLEDB.4.0","Data Source="C:/Documents and Settings/Administrator/桌面/test.xls";Extended Properties="Excel 5.0;HDR=Yes;";Persist Security Info=False")...[sheet1$]');
execsql;
end;
 
小弟是初学者,
 
我也想学习
 
试着在execsql;前加上:
Parameters.Clear;
ParamCheck:=false;
 
谢谢delphi8511,
不过现在提示
至少有一个参数没有被指定值
 
你的SQL语句有错呀.你可以试着在查询分析器里运行一下..应该是出错的..
你这样写吧:
insert into test(zt,users,tel,fy)
SELECT zt,users,tel,fy
FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="C:/Documents and Settings/Administrator/桌面/test.xls";Extended Properties=Excel 5.0;HDR=Yes;Persist Security Info=False')...[sheet1$]

你为什么不查下F1呢.openDataSource只有两个参数....
 
OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="C:/Documents and Settings/Administrator/桌面/test.xls";Extended Properties=Excel 5.0;HDR=Yes;Persist Security Info=False')...[sheet1$]
在SQL里用这个是没有错,在DELPHI里用
OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="C:/Documents and Settings/Administrator/桌面/test.xls";Extended Properties=Excel 5.0;HDR=Yes;Persist Security Info=False')...[sheet1$]
就无法运行啊,说找不到Microsoft等
 
你上面写的时候.没看到有空格呀...
SQLCommand := SQL语句

你用 SQL.text := SQLCommand 试下.应该可以的...
或者在前后多加一个空格..
 
with adoquery1 do
begin
close;
sql.Clear;
sqltrs := 'insert into test(zt,users,tel,fy) SELECT zt,user,tel,fy FROM OpenDataSource("Microsoft.Jet.OLEDB.4.0","Data Source="C:/Documents and Settings/Administrator/桌面/test.xls";Extended Properties="Excel 5.0;HDR=Yes;";Persist Security Info=False")...[sheet1$]';
Parameters.Clear;
ParamCheck:=false;
sql.Text := sqltrs;
execsql;
end;
这次是提示在Microsoft.Jet.OLEDB.4.0边上有语法错误
 
delphi 字符串中,要用2个单引号表示一个单引号
好好检查下单,双引号的嵌套问题
全部用双引号是不行的 ,
看看 "Data Source=",这里是一对,
已经把他包起来了 ,
电脑是死板的,两个就认为是一对
 
那要怎么改呢,我是个新手
 
现在有新问题
不能使用空白的对象或列名。如果必要,请使用一个空格.
with adoquery1 do
begin
close;
sql.Clear;
sqltrs:='insert into test(zt,users,tel,fy)'+
'SELECT * FROM OpenDataSource(""Microsoft.Jet.OLEDB.4.0"",""Data Source="C:/Documents and Settings/Administrator/桌面/test.xls";Extended Properties="Excel 8.0;HDR=Yes;";Persist Security Info=False"")...[sheet1$]';
Parameters.Clear;
ParamCheck:=false;
sql.Text:=sqltrs;
execsql;
end;
 
有人知道吗.很急
 
虽然没有完成,还是要谢谢
 
多人接受答案了。
 
后退
顶部