如何利用程序动态创建数据库?(sql)
并自动创建表到数据库中、同时将基础表中的数据也导入到相应的表中?
解决方案 »
- Delphi怎么定义一个有返回值的方法。
- 30分!!! 问个关于Combobox的问题。
- 非常奇怪的问题,日期保存为0000-00-00
- 我也想像各位一样能写出漂亮的程序,请问我还看看什么书呢?
- 我想做一个类似OICQ界面的程序
- 兄弟们,救救我!
- 三层结构如何对客户端数据集本地模糊查询?
- interbase超难问题,郁闷2天了
- DigitalPersona U.are.U 2000 SDK (400)
- 我的应用服务器经常会处于龟息状态,检查内存和CPU的使用都很稳定,但是它就是不响应其他的请求,可能要过个十几分钟才行,请大家畅所欲
- TEA加密问题
- 有没有朋友遇到过哟,我的DELPHI7 编释从此变得像蜗牛了。怪!!!
procedure TFrmDB.ButCreateClick(Sender: TObject);
Var SourceFileName1,SourceFileName2,DestFileName1,DestFileName2: String;
begin
if Trim(Edit.Text)<> '' then //检查路径
begin
//数据库名可随便取,但数据文件名不可更改
SourceFileName1:=ExtractFilePath(paramstr(0))+'\data\DataBase_data.MDF';
SourceFileName2:=ExtractFilePath(paramstr(0))+'\data\DataBase_Log.LDF';
DestFileName1:=Trim(Edit.Text)+'DataBase_data.MDF';
DestFileName2:=Trim(Edit.Text)+'DataBase_data.LDF';
with TMemoryStream.Create do
try //拷贝文件
LoadFromFile(SourceFileName1);
SaveToFile(DestFileName1);
LoadFromFile(SourceFileName2);
SaveToFile(DestFileName2);
try //执行附加数据库命令,edtdbname.text是数据库名,由用户自定
ADOQuery.SQL.Clear;
ADOQuery.SQL.Add('exec sp_attach_Db @dbname = N'''+Trim(EdtDBName.Text)+''','
+'@filename1 = N'''+DestFileName1+''','
+'@filename2 = N'''+DestFileName2+'''');
ADOQuery.ExecSQL;
Application.MessageBox('创建成功!','恭喜');
except
Application.MessageBox('创建失败,检查数据库连接','创建失败');
end;
except
Application.MessageBox('创建失败,检查硬盘是否有写入权限!','创建失败'); //可以提前
Free;
end;
end;
end;