我用的ADO连接,放了一个ADOConnection,怎么和Access使用相对路径连接?然后我用了个ADOquery来对表进行操作。
我用了下面的方法:
在Fromcreate的时候:
frmMain.adocon.connect;
frmMain.ADOCon.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=' + ExtractFilePath(Application.ExeName) + 'Angel.mdb';frmMain.ADOQu.Close;
frmMain.ADOQu.SQL.Clear;
str := 'select * from work ';
frmMain.ADOQu.SQL.Add(str);
frmMain.ADOQu.Open;结果总是说我From子句错误。我不知道怎么回事。请高人帮帮忙
我用了下面的方法:
在Fromcreate的时候:
frmMain.adocon.connect;
frmMain.ADOCon.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=' + ExtractFilePath(Application.ExeName) + 'Angel.mdb';frmMain.ADOQu.Close;
frmMain.ADOQu.SQL.Clear;
str := 'select * from work ';
frmMain.ADOQu.SQL.Add(str);
frmMain.ADOQu.Open;结果总是说我From子句错误。我不知道怎么回事。请高人帮帮忙
解决方案 »
- 最近总是莫名奇妙的问题。delphi读utf-8编码格式文件
- varchar转换为SMALLMONEY的问题
- 用winexec执行一个bat文件,如何获取执行进度?
- 如何用程序自动设置windows用户和用户使用权限?
- msdn
- 按钮发声问题 (100分)
- 一DELPHI写的GIS GPS定位系统(包含部分硬件)和某市电子地图价值几何?
- 有高分!!如何用QuickRep完成打印功能,是不是要和PrintDialog,PrinterSetupDialog结合起来??
- 如何用LOCATE语句实现类似SQL语句中的模糊查询功能?
- 哪位大哥知道delphi 1.0 ~ 6.0分别是何年release的﹐我要收集这方面的资料﹗谢谢﹗
- 怎样改由delphi6.0生成的EXE文件各窗体左上方的图标.
- read函数能不能一个单词一个单词地读??用空格或其他符号作分隔号!
frmMain.adocon.connect;放到
frmMain.ADOCon.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=' + ExtractFilePath(Application.ExeName) + 'Angel.mdb';的后面,先设置连接字符串,再连接.
str='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;Persist Security Info=False';
//以下这段代码不要在窗体的create事件中。
VAR
strFilePath:String;
begin
strFilePath:=GetCurrentDir()+'Angel.mdb';
frmMain.ADOCon.Close;
frmMain.ADOCon.ConnectionString:=Format(str,[strFilePath]);
frmMain.ADOCon.Open;
end;
frmMain.adocon.connected=false;
frmMain.ADOCon.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=' + ExtractFilePath(Application.ExeName) + 'Angel.mdb';
frmMain.adocon.connected=true;
再把ADOQu与adocon关联就可以了
应该没有问题了
字符串也检查了,没有用全角。我也用ADOTABLE连接表来对表进行操作也不行,都说FROM子句错误
frmMain.ADOCon.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=' + ExtractFilePath(Application.ExeName) + 'Angel.mdb';
try
frmMain.adocon.connect:=true;
except
on E: Exception do
showMessage(E.Message);
end;
frmMain.ADOQu.Close;
frmMain.ADOQu.SQL.Clear;
str := 'select * from work';
frmMain.ADOQu.SQL.Add(str);
frmMain.ADOQu.Open;在程序设计过程中将ADOQu的Connection属性指向adocon!
begin
connect; //这行去掉,没用的。是从你的frmMain.ADOQu.connect这句抄过来的
ConnectionString :='Provider=Microsoft.Jet.OLEDB.4.0;'
+'Data Source='+ExtractFileName(Paramstr(0)+'\Angel.mdb') ;
Connected:=True;
Close; //这行好像也可以省略掉
Sql.text:='select * from work';
Open;
end;//不会有错,你拷贝过去试试吧
{* 用Ado连接Access数据库函数}
begin
with Adocon do
begin
Close;
LoginPrompt := False; //若数据库不存在时,进行判断
ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;' +
'Data Source=' + DbName + ';' +
'Mode=ReadWrite;' +
'Persist Security Info=False;' +
'Jet OLEDB:Database Password=' + Password + ';' +
'Jet OLEDB:Compact Without Replica Repair=True';
try
KeepConnection := True;
Screen.Cursor := crHourGlass;
Connected := True;
Open;
Screen.Cursor := crDefault;
ADOConnectAccess := True;
except
ADOConnectAccess := False;
end;
end;
end;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~`
工程中正在使用的FUNCTION.保证COPY可用
其他完全一样是可以的。