begin
with ttable.create(self) do beign
databasename:='c:\temp';
tablename:='test.mdb';
tabletype:=ttdefault;
with fields do begin
add('name',ftstring,25,true);
add('age',ftinteger,0,true);
end;
createtable;
end;
end;
with ttable.create(self) do beign
databasename:='c:\temp';
tablename:='test.mdb';
tabletype:=ttdefault;
with fields do begin
add('name',ftstring,25,true);
add('age',ftinteger,0,true);
end;
createtable;
end;
end;
解决方案 »
- 请问TXP_IPEdit是哪个控件包的?
- delphi7能不能把窗体封装成dll
- 在delphi 5.0里如何让statusbar里面的文字从左往右或从右往左滚动啊?
- 初学急问:请问如何重载OnKeyPress方法?
- outlook2003左边的菜单风格如何实现
- 关于vclSKIN使用的问题,请各位给予指点并解决
- 今天遇一怪事
- 讨论话题::::中间层如何进行业务逻辑的封装?
- 用户登陆的session管理(response.sendredirect到另一页面后session丢失)?
- 高分请较高手:如何通过代码将OLEContainer中数据包(Package)中的文件保存到磁盘?
- delphi中有个装入库的功能,在安装第方组件的时候经常用到,请问那里是不是限制了数目的,好象装入十来个就不可以在装了
- 如何在DBGrid中增加一行合计?
一、通过OLE方式创建
相信各位都用通过OLE方式访问Word、Excel文件的经历,具体我不说太多,直接把具体代码写出来就完了
在引用部分加入:
uses ComObj;
实现部分:
procedure TFormOffice.BitBtn1Click(Sender: TObject);
var
CreateAccess:OleVariant;
begin
CreateAccess:=CreateOleObject('ADOX.Catalog');
CreateAccess.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\Aceco.mdb');
end;
1、在C:\下创建Aceco.mdb;
2、是Access2000格式,用Access97打不开;
3、系统需安装MDAC,这是好消息,客户不需安装Access也可以二、通过DBEngine创建
这才是关键中的关键,是我一定要写出来的原因!
各位是否还记得安装Delphi的时候,如果你选择自定义安装(我一般用Delphi写控件,所以当然是越小越好),会有很多安装选项,让你选择Access97或Access2000,还有MDAC等,问题就在这里!Delphi5.0中早就封装了现成的类,只是大家都没有注意而已它位于:
$Delphi5\Imports
目录下!
其中有DAO97.DCU文件,它是通过DAO350.DLL来完成的,其中的定义部分和DAO350.DLL如出一辙!OK,到现在,所有的一切都明白了(可惜我花了一天时间!)。那么具体实现起来就太方便了,具体过程如下:
在引用部分加入:
uses DAO97;
实现部分:
procedure TFormOffice.BitBtn4Click(Sender: TObject);
var
Engine:DBEngine;
begin
Engine:=CoDBEngine.Create;
Engine.CreateDatabase('c:\NewAccess.mdb',';LANGID=0x0804;CP=936;COUNTRY=0;',dbEncrypt);
end; 说明:
1、在C:\下创建NewAccess.mdb;
2、语言国家是简体中文;
3、压缩整理数据库用Engine.CompactDatabase('c:\invoice.mdb','c:\God.mdb','',0,'');就是将c:\invoice.mdb压缩整理成c:\God.mdb,剩下的只是将c:\invoice.mdb删除(DeleteFile('c:\invoice.mdb');),然后将c:\God.mdb重新命名(RenameFile('c:\God.mdb','c:\invoice.mdb');)即可。
var DataBaseName,
ConnectStr:ansiString;
tdeform:TTdeForm;
passwordform:tpasswordform;
i:integer;
flag,flag1,flag2,flag4,flag6,flag7,flag8,flag9,flag10:boolean;
RationDataBaseName : AnsiString;
begin
flag:=false;
listbox1.Items.Clear;
OpenDialog1.Title:='打开工程项目';
OpenDialog1.InitialDir := ExtractFilePath(Application.ExeName) + '新建项目';
if OpenDialog1.Execute then
begin
//设置连接字符串
DataBaseName:=OpenDialog1.FileName;
ConnectStr:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+DataBaseName+';';
ProjectDatamodule.ProjectConnection.Connected:=false;
ProjectDatamodule.ProjectConnection.ConnectionString:='';
ProjectDatamodule.ProjectConnection.ConnectionString:=ConnectStr+'Persist Security Info=true';
ProjectDatamodule.ProjectConnection.Connected:=true;
projectdatamodule.Projectconnection.GetTableNames(listbox1.Items,false);
procedure TProjectDataModule.CreatesavedataTable; //创建全局变量存储表
begin
with CreateTablequery do
begin
close;
sql.Clear ;
sql.Add('Create Table datasave(bchangede bit,bchangeyss bit,bchangegcdj bit,bchangecldj bit,bchangeclcj bit,bchangeqf bit,clcjhj numeric(8,3))');
execsql;
end;
end;procedure TProjectDataModule.CreateGcdj_lsTable; //创建临时)
begin
with CreateTablequery do
begin
close;
sql.Clear ;
sql.Add('Create Table gcdj_ls(id int,xh char(4) null,demc char(50) null,debh char(50) null,dedw char(10) null,glmc char(20) null,dw char(4) null,sl char(4) null,dj char(10) null,fj char(10) null)');
execsql;
end;
end;
procedure TProjectDataModule.CreatezcmTable; //创建
begin
with CreateTablequery do
begin
CreateTableQuery.Sql.Clear;
CreateTableQuery.Sql.Text:='CREATE TABLE T_gcgl (zcm char(30))';
CreateTableQuery.execsql;
end;
end;
用的是jro也就是原来的DAO