比如一个*.mdb(ACCESS文件)
里面有两张表:BasicInfo.db和Grade.db
我想一按按键open,就能在opendialog中选择一个*.mdb
然后把该文件的用Query1,Query2把两张表分别打开:
Query1.Close;
Query1.SQL.Add('select * from BasicInfo;');
Query1.Open;Query2.Close;
Query2.SQL.Add('select * from Grade;');
Query2.Open;
是不是要用到Tdatabase(建立数据库)?
请问怎么用?
里面有两张表:BasicInfo.db和Grade.db
我想一按按键open,就能在opendialog中选择一个*.mdb
然后把该文件的用Query1,Query2把两张表分别打开:
Query1.Close;
Query1.SQL.Add('select * from BasicInfo;');
Query1.Open;Query2.Close;
Query2.SQL.Add('select * from Grade;');
Query2.Open;
是不是要用到Tdatabase(建立数据库)?
请问怎么用?
你的这个运作只能说是选定了数据库文件。
但要对这个数据库进行操作,先要联接到这个数据库,然后才能你所谓的select 操作。关于如果动态地联接数据库,你可以在CSDN上查一下,类似的帖子太多了。
对
我要的正如你所说功能
你能够给我介绍一下用什么控件吗
是不是database?
procedure TForm1.Button1Click(Sender: TObject);
begin
opendialog1.Execute;
if(opendialog1.FileName<>'') then
begin
database1.DatabaseName:=opendialog1.FileName;
Query1.Database:=database1;
Query1.Close;
Query1.SQL.Add('select * from 基本信息表;');
//其中database1是一个TDatabase组件
//还有一个Datasource,它的Dataset是Query1
用ADOConnection联接上之后,你可以用TADOQuery控件,里面有个connection属性指向刚才建好的ADOConnection1。你如果还要使用这个数据源,则还要加一个TDataSource控件,将其中的DataSet属性指向刚才的ADOQuery1。这样,你在用ADOQuery1进行查询时,DataSource1里就会有相应的数据。
ADOConnection1.Close;
ADOConnection1.Connected:=false;
ADOConnection1.ConnectionString:='';
str:=Provider=MSDASQL.1;Persist Security Info=False;Data Source=MS Access Database;Mode=ReadWrite;Extended Properties="DSN=MS Access Database;DBQ=.\data\mydb.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;";Initial Catalog=.\data\mydb.mdb;
ADOConnection1.Connected:=true;
ADOConnection1.Open;
ADOConnection1.ConnectionString:=str; 再加上这句,刚才写丢了。
ADOConnection1.Connected:=true;
其它的你自己再调试一下吧
我照做了:
procedure TForm1.Button1Click(Sender: TObject);
var
str:string;
begin
opendialog1.Execute;
if(opendialog1.FileName<>'') then
begin
ADOConnection1.Close;
ADOConnection1.Connected:=false;
ADOConnection1.ConnectionString:='';
str:='Provider=MSDASQL.1;Persist Security Info=False;Data Source=MS Access Database;Mode=ReadWrite;Extended Properties="DSN=MS Access Database;DBQ=.\data\mydb.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;";Initial Catalog='+opendialog1.FileName; // .\data\mydb.mdb;
ADOConnection1.ConnectionString:=str;
ADOConnection1.Connected:=true;
ADOConnection1.Open;
end;
end;
我把一个DBGrid连到Datasource1上,而Datasource1的Dataset也设置了ADOQuery
但是提示错误:
[microsoft][micorsoft access driver]找不到文件‘(未知的)’。
(本来我想从ADOQuery中的SQL填入‘select * from BasicInfo;’)
请帮忙
谢谢你啊
放一个adoquery connection指向这个ADOConnection
adoquery.close;
adoquery.sql.add('select * from '+opendialog1.FileName);
adoquery.open;
在vc里面的两种方法:
odbc数据源:ADOConn->Open("DSN=Trade_MIS;Provider=MSDASQL","sa","",adConnectUnspecified);
其中Trade_MIS是ODBC数据源名。
直接操作Access数据库
ADOConn->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data\\Source=DEMO.mdb","","",adModeUnknown);
CString link;
CString File1="DEMO.mdb";
CString File2"DEMO2.mdb;
然后构造连接字符串:
link="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+File1;
ADOConn->Open(link,"","",adModeUnknown);第二个文件类似...