关于Access数据库的动态建立问题? 我想在一个Dll里建立一个临时的Access数据库,并对数据库里的表进行动态的建立删除,请问在Dll里面怎么建立数据库呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果你会在一个普通的程序中建立access数据库的话,把这些建立数据库的代码写到一个函数中,把这个函数移到dll中,在把这个函数导出就可以了。 要在dll中建表,还是临时的,有这必要吗?不如用内存映像文件来做(这是比较正统的做法) 对啊,我同意 li_zhifu(东北人),但是这个我也不懂啊 var ADO: TADOConnection; ADOQuery1: TADOQuery;procedure TForm1.Button2Click(Sender: TObject);var Source,str_sql:string; CreateDB:Variant;begin //判断数据库是否已经存在 if FileSearch('DB.MDB',ExtractFileDir(Application.ExeName)+'\')<>'' then begin Application.MessageBox('数据库已经存在!','提示',64); exit; end; // 创建数据库 Source:=' Provider=Microsoft.Jet.OLEDB.4.0; ' +' Data Source= ' +ExtractFileDir(Application.ExeName) +'\DB.MDB'; try CreateDB:=CreateOleObject('ADOX.Catalog'); CreateDB.Create(Source); Application.MessageBox('数据库创建成功','提示',64); except Application.MessageBox('数据库创建失败','提示',64); end; //创建数据库中的表 ADO.ConnectionString:=Source; ADO.Connected:=true; ADOQuery1.Connection:=ADO; ADOQuery1.Close; ADOQuery1.SQL.Clear; str_sql:=' create table T ( ID char(10) ) '; ADOQuery1.SQL.Add(str_sql); try ADOQuery1.ExecSQL; Application.MessageBox('数据表创建成功','提示',64); except Application.MessageBox('数据表创建失败','提示',64); end;end;procedure TForm1.Button3Click(Sender: TObject);var DBName,s_sql:string;begin//删除数据表 ADOQuery1.Close; ADOQuery1.SQL.Clear; s_sql:=' drop table T '; ADOQuery1.SQL.Add(s_sql); try ADOQuery1.ExecSQL; Application.MessageBox('数据表删除成功','提示',64); except Application.MessageBox('数据表删除失败','提示',64); end;// 删除数据库 DBName:=ExtractFileDir(Application.ExeName)+'\DB.MDB'; try DeleteFile(DBName); Application.MessageBox('数据库删除成功!','提示',64); except Application.MessageBox('数据库删除失败!','提示',64); end;end; 我把这段代码移植到Dll里的时候却有错误,编译Dll的时候通过了,调用的时候说这个Dll模块的Ole调用没有初始化,为什么? 你要在uese中加上comobjuses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Db, ADODB, comobj; Delphi寻求帮助 有关最大化和还原的问题 請問如何移除自己編寫並安裝的組件呢? 怎么用全局快捷键关闭程序调出的计算器? 这个是不是倒分? 散尽家财。去大富翁 江湖救急,,明天交货,,那个兄台有英文版或者繁体版的odbc?? bde问题 一个简单的问题 API函数当中参数类型的原型声明是使用什么———语言来描述的,在转换为object pascal语言后,只是声明的样式发生变化,其他不变。 关于MDI的菜鸟问题!向各位高手请教 delphi有静态类函数和类变量吗?
ADO: TADOConnection;
ADOQuery1: TADOQuery;procedure TForm1.Button2Click(Sender: TObject);
var Source,str_sql:string;
CreateDB:Variant;
begin
//判断数据库是否已经存在
if FileSearch('DB.MDB',ExtractFileDir(Application.ExeName)+'\')<>'' then
begin
Application.MessageBox('数据库已经存在!','提示',64);
exit;
end; // 创建数据库
Source:=' Provider=Microsoft.Jet.OLEDB.4.0; '
+' Data Source= '
+ExtractFileDir(Application.ExeName)
+'\DB.MDB';
try
CreateDB:=CreateOleObject('ADOX.Catalog');
CreateDB.Create(Source);
Application.MessageBox('数据库创建成功','提示',64);
except
Application.MessageBox('数据库创建失败','提示',64);
end; //创建数据库中的表
ADO.ConnectionString:=Source;
ADO.Connected:=true; ADOQuery1.Connection:=ADO;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
str_sql:=' create table T ( ID char(10) ) ';
ADOQuery1.SQL.Add(str_sql);
try
ADOQuery1.ExecSQL;
Application.MessageBox('数据表创建成功','提示',64);
except
Application.MessageBox('数据表创建失败','提示',64);
end;end;procedure TForm1.Button3Click(Sender: TObject);
var DBName,s_sql:string;
begin
//删除数据表
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
s_sql:=' drop table T ';
ADOQuery1.SQL.Add(s_sql);
try
ADOQuery1.ExecSQL;
Application.MessageBox('数据表删除成功','提示',64);
except
Application.MessageBox('数据表删除失败','提示',64);
end;// 删除数据库
DBName:=ExtractFileDir(Application.ExeName)+'\DB.MDB';
try
DeleteFile(DBName);
Application.MessageBox('数据库删除成功!','提示',64);
except
Application.MessageBox('数据库删除失败!','提示',64);
end;
end;
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Db, ADODB, comobj;