我有一个本地access文件,其中有一个表为userinfo,里面有一个userid字段
在sql server上有一个t_user表,也有一个userid字段,现在想根据本地的来更新sql server的t_user的值,我在Adoquery里是这样写的update t_user set delflag=1 where userid in (select [用户号] from opendatasource('Microsoft.Jet.OLEDB.4.0','Data Source="C:\test.mdb";User ID=Admin;Password=;')...userinfo where status in ('a','b'))结果delphi报错:
Ad hoc access to OLE DB provider 'Microsoft.Jet.OLEDB.4.0' has been denied.You must access this provider through a linked server.请有相关经验的高手解决,谢谢了
在sql server上有一个t_user表,也有一个userid字段,现在想根据本地的来更新sql server的t_user的值,我在Adoquery里是这样写的update t_user set delflag=1 where userid in (select [用户号] from opendatasource('Microsoft.Jet.OLEDB.4.0','Data Source="C:\test.mdb";User ID=Admin;Password=;')...userinfo where status in ('a','b'))结果delphi报错:
Ad hoc access to OLE DB provider 'Microsoft.Jet.OLEDB.4.0' has been denied.You must access this provider through a linked server.请有相关经验的高手解决,谢谢了
解决方案 »
- 给新手推荐点Delphi方面的资料
- 动态增加柱状图,然后增加的柱状图堆叠,颜色怎么好多事重复的
- 新手求助,请问如果远程注入后才能调用怎么的dll里的窗体,好心人帮帮忙,谢谢!
- delphi7编译的程序在VISTAR上无法运行,请问如何解决??
- 问一个问题,为啥有的人结贴不给分啊,建议csdn增加一个结贴不给分的"黑名单"功能
- 帮我,关于拖拽的问题~
- 编译delphi程序时报地址错误
- 请教:下面这个动态控件的错误出在那里?
- 关于汇总表报的小问题,谢谢大家帮忙
- 如何取得一个panel在主窗口的绝对Top值(主窗口有toolBar)
- dx们,我想寻找可以转成DBF的控件,谢谢,不要试用的。
- 请教 ADO连接ORACLE数据库时出现ORA-12456 PERMISSION DENIED的错误。
如果不在一台机器上的话,C:\test.mdb指的就是SQL服务器的C:\test.mdb,那样的话
就可能问题多多了:服务器有没有装ACCESS?(没有肯定有问题哦),服务器有没有对应数据ACCESS文件?当然可以把地址改掉把本机地址改成局域网相对地址比如\\192.168.0.2\TEMP\TEST.MDB,要注意TEMP文件夹要共享出来且从服务器端能够访问.如果是在一台机器上,随便搜一下,应该可以得到答案
procedure TForm1.Button2Click(Sender: TObject);
var
StrList:TStringlist;
begin
try
if ConnectDB=1 then exit;
StrList:=TStringList.Create;
StrList.Add('SELECT A.USERID,B.姓名 FROM [ODBC;Driver=SQL Server;');
StrList.Add('Server='+StrDbhost+';Uid='+StrDbUser+';Pwd='+StrDbPassword+';database='+StrDbDatabase+'].t_user A,');
StrList.Add('用户基本情况表 B WHERE B.用户号=A.USERID AND B.交费状况 in (''拆机'',''报停'') AND A.ACCTSTATE<>3');
Sqlsrv.DisableControls;
Sqlsrv.Close;
Sqlsrv.SQL.Clear;
Sqlsrv.SQL:=StrList;
Sqlsrv.Open;
Sqlsrv.EnableControls;
Sb.Panels[1].Text:='当前共有'+inttostr(SqlSrv.recordcount)+'个用户被报停或拆机';
StrList.Clear;
StrList.Add('UPDATE 用户基本情况表 A INNER JOIN [ODBC;DRIVER=SQL Server;');
StrList.Add('Server='+StrDbhost+';Uid='+StrDbUser+';Pwd='+StrDbPassword+';database='+StrDbDatabase+'].t_user B');
StrList.Add('ON (A.用户号 = B.USERID AND A.交费状况 in (''拆机'',''报停'') AND B.ACCTSTATE=0) SET B.ACCTSTATE = 3');
ExecQuery.Close;
ExecQuery.SQL.Clear;
ExecQuery.SQL:=Strlist;
ExecQuery.ExecSQL;
Strlist.Destroy;
Application.MessageBox('数据导入成功!', '恭喜恭喜', MB_ICONINFORMATION);
except
Application.MessageBox('数据库连接失败,请确认数据库参数设置正确!', '系统警告', MB_ICONERROR);
end;
end;