紧急求教:EXCEL数据导入SQLSERVER数据库的问题!在服务器上没问题,但在客户端就有问题……

yangzhy 2005-06-04 09:15:30
如题,我把EXCEL数据导入SQL SERVER 数据库时,用的就是常用的select * from openrowset...语句,在服务器上执行能够成功,但是在客户端上执行总是不成功。
在客户端上执行其他数据库操作都没问题,就是导入EXCEL数据这一条有问题。
紧急求教,谢谢!
...全文
147 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
cosio 2005-06-21
  • 打赏
  • 举报
回复
OPENDATASOURCE ( provider_name, init_string )
provider_name

注册为用于访问数据源的 OLE DB 提供程序的 PROGID 的名称.
所以说不是只能在本地,如果是客户端访问,路径就不一样
yangzhy 2005-06-21
  • 打赏
  • 举报
回复
谢谢楼上的楼上。
那用OpenDataSource是不是也只能在本地?
zhouhaihe 2005-06-18
  • 打赏
  • 举报
回复
Workbook.Exec(PR("Add"));
这句代码的PR是什么啊?
sunmedia 2005-06-17
  • 打赏
  • 举报
回复
我曾经有一个项目和你遇到的是相同的问题,最后只有将导出的EXCEL文件,保存在SQL SERVER服务器上,然后在客户端打开这个文件,用OpenRowSet就可以了,我查过资料,OpenRowSet只能在SQL SERVER本地调用,所以EXCEL要保存在服务器上,这样就可以了
yangzhy 2005-06-17
  • 打赏
  • 举报
回复
我原来的办法不知道为什么不行?:(
jxncyjq 2005-06-08
  • 打赏
  • 举报
回复
VOID TForm1::SaveToExcel()
{//赋值内容
Variant Axl,Workbook,AxSheet,nms,bef,aft;
//文件路径和保存名称
AnsiString filename=GetCurrentDir()+"\\test.xls";
//判断文件是否存在
if (FileExists(filename))
{
//询问是否删除
if (MessageDlg("文件已经存在,是否删除?",
mtWarning, TMsgDlgButtons() << mbOK<<mbCancel, 0)==mrOk)
DeleteFile(filename);
else
{ShowMessage("放弃操作");return;}
}
//建立excel连接
Axl=Variant::CreateObject("Excel.Application");
Axl.OPS("Visible",false);
Workbook= Axl.OPG("Workbooks");
//创建一个新的excel工作本(文件)
Workbook.Exec(PR("Add"));
Workbook=Axl.OPG("ActiveWorkbook");
//显示存在的sheet数目
int count=Workbook.OPG("sheets").OPG("count");
ShowMessage(IntToStr(count)+"个表");
//添加一个Sheet,命名为test
aft=Workbook.OPG("sheets",count);
Workbook.OPG("sheets").OPR("Add",bef.NoParam(),aft);
AxSheet=Workbook.OPG("ActiveSheet");
//Rename
AxSheet.OPS("Name","test");
//给单元1,2赋值
for(int i=0;i<=mmoList->Lines->Count;i++)
AxSheet.OPG("Cells").OPG("Item",(Variant)i+1,(Variant)1).OPS("Value",mmoList->Lines->Strings[i].c_str());
// .Exec(PropertySet("Value")<< s.c_str());
//以上两种方式都可以

//选择第一张sheet
int sheetnum=1;
AxSheet=Workbook.OPG("sheets",sheetnum);
//选择名字为sheet2的表单
AnsiString shname="sheet2";
AxSheet=Workbook.OPG("sheets",shname.c_str());
//关闭警告提示
Workbook.OPG("Application").OPS("DisplayAlerts",false);
//删除选定表单
AxSheet.OFN("Delete");
//打开警告提示
Workbook.OPG("Application").OPS("DisplayAlerts",false);
//保存文件,两种方式都可以
//Workbook.Exec(PR("SaveAs")<<filename);
Workbook.OPR("SaveAs",filename.c_str());
//结束退出
Workbook.OPR("Close");
Axl.OFN("Quit");
//结束,如果没有如下代码,EXCEL线程直到应用程序退出才结束。
Axl=Unassigned;
Workbook=Unassigned;
AxSheet=Unassigned;
bef=Unassigned;
aft=Unassigned;
nms=Unassigned;
ShowMessage("数据表已经建立!");
}
这个例程是可以用的,是通过ole操作excel导数据没问题的。
yangzhy 2005-06-08
  • 打赏
  • 举报
回复
各位大侠怎么都不指点一下?
分数太少我可以再加嘛

谢谢了~~~
yangzhy 2005-06-07
  • 打赏
  • 举报
回复
没有人知道吗?:(
或者我在服务器上运行程序,而把要导入的EXCELE放在客户端的机器上,操作也不成功。

为什么呢???
Lonsy 2005-06-05
  • 打赏
  • 举报
回复
为什么不进企业管理器里直接导入数据呢?
比如:
SQL Server组
--(Local) Windows NT
--数据库
--master(右键)导入数据

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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