如何在delphi中编程实现动态建立sql server库?很急! 需要一个建库的程序,因为delphi中的那些数据操作控件都需要连接数据源,但是这些连接的都是已有的库,用create database的语句建库也不知道该用什么控件或接口来调用. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我也面临同样的问题,我同样如果要建立一个ACCESS呢?是否当作创建新建文件一样呢? 用adoquery组件套用sql语句就可以实现动态的建库. //参考如下代码~~uses ComObj;//...var CreateAccess: OLEVariant;begin CreateAccess := CreateOleObject('ADOX.Catalog'); CreateAccess.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\temp\temp.mdb'); CreateAccess := Unassigned;end;//参考如下代码~~ ADOQuery1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\temp\temp.mdb'; ADOQuery1.SQL.Text := 'CREATE TABLE Table1 (Field1 varchar(10), Field2 varchar(10))'; ADOQuery1.ExecSQL; 建立access数据库经典代码:至于sql server,用个adoconnection连上,用adoconnection.execute('sql创建语句就可以了')access的:.DELPHI中操作ACCESS数据库(建立.mdb文件,压缩数据库)以下代码在WIN2K,D6,MDAC2.6下测试通过,编译好的程序在WIN98第二版无ACCESS环境下运行成功.//在之前uses ComObj,ActiveX//声明连接字符串Const SConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;' +'Jet OLEDB:Database Password=%s;';//=============================================================================// Procedure: GetTempPathFileName// Author : ysai// Date : 2003-01-27// Arguments: (None)// Result : string//=============================================================================function GetTempPathFileName():string;//取得临时文件名var SPath,SFile:array [0..254] of char;begin GetTempPath(254,SPath); GetTempFileName(SPath,'~SM',0,SFile); result:=SFile; DeleteFile(PChar(result));end;//=============================================================================// Procedure: CreateAccessFile// Author : ysai// Date : 2003-01-27// Arguments: FileName:String;PassWord:string=''// Result : boolean//=============================================================================function CreateAccessFile(FileName:String;PassWord:string=''):boolean;//建立Access文件,如果文件存在则失败var STempFileName:string; vCatalog:OleVariant;begin STempFileName:=GetTempPathFileName; try vCatalog:=CreateOleObject('ADOX.Catalog'); vCatalog.Create(format(SConnectionString,[STempFileName,PassWord])); result:=CopyFile(PChar(STempFileName),PChar(FileName),True); DeleteFile(STempFileName); except result:=false; end;end;//=============================================================================// Procedure: CompactDatabase// Author : ysai// Date : 2003-01-27// Arguments: AFileName,APassWord:string// Result : boolean//=============================================================================function CompactDatabase(AFileName,APassWord:string):boolean;//压缩与修复数据库,覆盖源文件var STempFileName:string; vJE:OleVariant;begin STempFileName:=GetTempPathFileName; try vJE:=CreateOleObject('JRO.JetEngine'); vJE.CompactDatabase(format(SConnectionString,[AFileName,APassWord]), format(SConnectionString,[STempFileName,APassWord])); result:=CopyFile(PChar(STempFileName),PChar(AFileName),false); DeleteFile(STempFileName); except result:=false; end;end;//=============================================================================// Procedure: ChangeDatabasePassword// Author : ysai// Date : 2003-01-27// Arguments: AFileName,AOldPassWord,ANewPassWord:string// Result : boolean//=============================================================================function ChangeDatabasePassword(AFileName,AOldPassWord,ANewPassWord:string):boolean;//压缩数据库并修改ACCESS数据库密码var STempFileName:string; vJE:OleVariant;begin STempFileName:=GetTempPathFileName; try vJE:=CreateOleObject('JRO.JetEngine'); vJE.CompactDatabase(format(SConnectionString,[AFileName,AOldPassWord]), format(SConnectionString,[STempFileName,ANewPassWord])); result:=CopyFile(PChar(STempFileName),PChar(AFileName),false); DeleteFile(STempFileName); except result:=false; end;end; 谢谢各位的帮忙,这些都是如何动态建立ACCESS库,但是SQL SERVER到底该怎么办? 建立access数据库经典代码:至于sql server,用个adoconnection连上,用adoconnection.execute('sql创建语句就可以了')解释:adoconnection.execute('sql创建语句就可以了') sql语句:IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'数据库名') DROP DATABASE [数据库名]GOCREATE DATABASE [数据库名] ON (NAME = N'数据库名, FILENAME = N'D:\数据库文件路径' , SIZE = 7, FILEGROWTH = 10%) LOG ON (NAME = N'dzyls2003_Log', FILENAME = N'D:\日志文件路径' , SIZE = 82, FILEGROWTH = 10%) COLLATE Chinese_PRC_CI_ASgoexec sp_dboption N'数据库名', N'autoclose', N'false'GO....相关参考一下你随便的一个数据库脚本(建表就不用我说了吧) 为什么都去研究大中型数据库的动态建立,你一个sqlserver的系统还指望一个傻瓜用户拿去setup了用吗?那天用户心血来潮又一次setup ---哭死你 Delphi操作excel 还是RAVE5的问题! [求助]矢量图形的局部放大 关于Timer控件的问题! 大家看看这是微软的什么问题? 哪有中文的HELP文件? 版本管理工具VSS哪里有下载 各住兄台!一个打印的问题!急!在线等待…… 请问有没有这样一个控件,输入数字,自动转换为货币格式,像EXCEL中的“设定格式”功能一样。 如何在DELPHI中清空数据库中表中的记录 jpg图片处理,可缩放,点某个位置后出现一个矩形框,并将这个框里的图复制到屏幕另外的地方,如有源代码者单独给100分 Delphi中是否有类似Java中的Vector类型?
uses ComObj;
//...
var
CreateAccess: OLEVariant;
begin
CreateAccess := CreateOleObject('ADOX.Catalog');
CreateAccess.Create('Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\temp\temp.mdb');
CreateAccess := Unassigned;
end;//参考如下代码~~
ADOQuery1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\temp\temp.mdb';
ADOQuery1.SQL.Text := 'CREATE TABLE Table1 (Field1 varchar(10), Field2 varchar(10))';
ADOQuery1.ExecSQL;
access的:.DELPHI中操作ACCESS数据库(建立.mdb文件,压缩数据库)
以下代码在WIN2K,D6,MDAC2.6下测试通过,
编译好的程序在WIN98第二版无ACCESS环境下运行成功.
//在之前uses ComObj,ActiveX
//声明连接字符串
Const
SConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;'
+'Jet OLEDB:Database Password=%s;';//=============================================================================
// Procedure: GetTempPathFileName
// Author : ysai
// Date : 2003-01-27
// Arguments: (None)
// Result : string
//=============================================================================
function GetTempPathFileName():string;
//取得临时文件名
var
SPath,SFile:array [0..254] of char;
begin
GetTempPath(254,SPath);
GetTempFileName(SPath,'~SM',0,SFile);
result:=SFile;
DeleteFile(PChar(result));
end;//=============================================================================
// Procedure: CreateAccessFile
// Author : ysai
// Date : 2003-01-27
// Arguments: FileName:String;PassWord:string=''
// Result : boolean
//=============================================================================
function CreateAccessFile(FileName:String;PassWord:string=''):boolean;
//建立Access文件,如果文件存在则失败
var
STempFileName:string;
vCatalog:OleVariant;
begin
STempFileName:=GetTempPathFileName;
try
vCatalog:=CreateOleObject('ADOX.Catalog');
vCatalog.Create(format(SConnectionString,[STempFileName,PassWord]));
result:=CopyFile(PChar(STempFileName),PChar(FileName),True);
DeleteFile(STempFileName);
except
result:=false;
end;
end;//=============================================================================
// Procedure: CompactDatabase
// Author : ysai
// Date : 2003-01-27
// Arguments: AFileName,APassWord:string
// Result : boolean
//=============================================================================
function CompactDatabase(AFileName,APassWord:string):boolean;
//压缩与修复数据库,覆盖源文件
var
STempFileName:string;
vJE:OleVariant;
begin
STempFileName:=GetTempPathFileName;
try
vJE:=CreateOleObject('JRO.JetEngine');
vJE.CompactDatabase(format(SConnectionString,[AFileName,APassWord]),
format(SConnectionString,[STempFileName,APassWord]));
result:=CopyFile(PChar(STempFileName),PChar(AFileName),false);
DeleteFile(STempFileName);
except
result:=false;
end;
end;//=============================================================================
// Procedure: ChangeDatabasePassword
// Author : ysai
// Date : 2003-01-27
// Arguments: AFileName,AOldPassWord,ANewPassWord:string
// Result : boolean
//=============================================================================
function ChangeDatabasePassword(AFileName,AOldPassWord,ANewPassWord:string):boolean;
//压缩数据库并修改ACCESS数据库密码
var
STempFileName:string;
vJE:OleVariant;
begin
STempFileName:=GetTempPathFileName;
try
vJE:=CreateOleObject('JRO.JetEngine');
vJE.CompactDatabase(format(SConnectionString,[AFileName,AOldPassWord]),
format(SConnectionString,[STempFileName,ANewPassWord]));
result:=CopyFile(PChar(STempFileName),PChar(AFileName),false);
DeleteFile(STempFileName);
except
result:=false;
end;
end;
DROP DATABASE [数据库名]
GO
CREATE DATABASE [数据库名] ON (NAME = N'数据库名, FILENAME = N'D:\数据库文件路径' , SIZE = 7, FILEGROWTH = 10%) LOG ON (NAME = N'dzyls2003_Log', FILENAME = N'D:\日志文件路径' , SIZE = 82, FILEGROWTH = 10%)
COLLATE Chinese_PRC_CI_AS
go
exec sp_dboption N'数据库名', N'autoclose', N'false'
GO
....相关参考一下你随便的一个数据库脚本(建表就不用我说了吧)