procedure TForm1.Btn_OKClick(Sender: TObject);
var sqlconn:string;
begin
Sqlconn:='Provider=SQLOLEDB.1;'+'password='+Edit_Password.Text
+';Persist Security Info=true;User ID='+Edit_Name.Text
+';Data Source='+Edit_Server.Text;
if Edit_Server.Text=EmptyStr then begin
showmessage('请输入SQL服务器的名称或者IP地址!');
Edit_Server.SetFocus;
exit;
end;
if Edit_Name.Text=EmptyStr then begin
ShowMessage('请输入登陆数据库的用户名!');
Edit_Name.SetFocus;
exit;
end; with ADO_Test do
begin
Close;
ConnectionString :=Sqlconn;
end;
Try
Try
Ado_Test.LoginPrompt:=false;
Ado_Test.Connected:=true;
Messagebox(Handle,'连接成功。','提示',MB_OK or MB_ICONINFORMATION);
Button2.Click;
except
Messagebox(Handle,Pchar('连接['+Edit_Server.Text+']失败!'),'警告',MB_OK or MB_ICONWARNING);
end;
Finally
Ado_Test.Connected:=false;
end;
end; procedure TForm1.Button2Click(Sender: TObject);
Var
memExec,s:TStringList;
I,J:integer;
strSql,sqlstr,sqlconnstr:string; begin
Sqlconnstr:='IF EXISTS (SELECT name FROM master.dbo.sysdatabases WHERE name = N'''
+ 'ToolManage'''+ ') DROP DATABASE [ToolManage]';
//不使用路径选择用缺省的 sqlstr:='create database ToolManage ON (NAME = N'''+'ToolManage_Data'''
+', FILENAME = N'''+ExtractFilePath(Application.ExeName)+'data\ToolManage_Data.MDF'''
+ ', SIZE = 1, FILEGROWTH = 10%) LOG ON (NAME = N'''+'ToolManage_Log'''+', FILENAME = N'''
+ ExtractFilePath(Application.ExeName)+'data\ToolManage_Log.LDF'''
+ ', SIZE = 1, FILEGROWTH = 10%) COLLATE Chinese_PRC_CI_AS';
Try
// Ado_CreateSQL.SQL.Clear; //清除创建的ado的sql
// //建立数据库Edit_database
Ado_CreateSQL.Connection:=Ado_Test;
Ado_CreateSQL.Close;
Ado_CreateSQL.SQL.Add('use master');
Ado_CreateSQL.ExecSQL; //执行 Ado_CreateSQL.Close;
Ado_CreateSQL.SQL.Add(Sqlconnstr);
Ado_CreateSQL.ExecSQL; //执行 Ado_CreateSQL.Close;
Ado_CreateSQL.SQL.Add(sqlstr);
Ado_CreateSQL.ExecSQL; //执行 Ado_CreateSQL.Close;
Ado_CreateSQL.SQL.Add('use ToolManage');
Ado_CreateSQL.ExecSQL; //执行 memExec := TStringList.Create;
s := TStringList.Create;
try
memExec.LoadFromFile(ExtractFilePath(Application.ExeName) + '\data\sql.sql');
s.Clear;
for i := to memExec.Count - do
begin
if UpperCase(Trim(memExec.Strings[i])) <> '' then
begin
if UpperCase(Trim(memExec.Strings[i])) <> 'GO' then
s.Add(memExec.Strings[i])
else if UpperCase(Trim(memExec.Strings[i])) = 'GO' then
begin
try
strSql := s.Text;
with QryAll do
begin
Close;
SQL.Text := strSql;
ExecSQL;
end;
s.Clear;
except
s.Clear;
ShowMessage(strSql);
end;
end;
end;
end;
ShowMessage('创建 ToolManage 数据库成功!'); with adocommand1 do
try
screen.Cursor := crSqlWait;
try
Ado_Test.Connected := false; CommandTExt := 'use master';
execute;
CommandText := 'ALTER DATABASE ToolManage SET OFFLINE WITH ROLLBACK IMMEDIATE';
execute;
CommandText := 'restore DataBase ToolManage from disk='''
+ ExtractFilePath(Application.ExeName)+'backup\2008-6-5(nil).bak'''
+ ' with Replace';
execute;
CommandText := 'ALTER DATABASE ToolManage SET ONLINE WITH ROLLBACK IMMEDIATE';
execute;
CommandText:= 'Use ToolManage';
execute; Ado_Test.Connected := true;
CommandText :='Use ToolManage';
execute;
ShowMessage('初始化数据库成功!');
finally
screen.Cursor := crDefault;
end;
except
on e: exception do
ShowMessage('初始化数据库失败!原因是:' + e.Message);
end; DataM.UserName := Trim(Edit_Name.Text);
DataM.UserPassword := Trim(Edit_Password.Text);
DataM.Server := Trim(Edit_Server.Text);
Ado_Test.Connected :=false;
finally
memExec.Free;
s.Free;
end;
except
DataM.UserName := '';
DataM.UserPassword := '';
DataM.Server := '';
close;
Exit;
End;
close;
end; procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form1:=nil;
Action := caFree;
end; procedure TForm1.FormShow(Sender: TObject);
begin
Edit_Server.Text := '127.0.0.1';
end;

自动创建数据库(DELPHI+SQL SERVER)的更多相关文章

  1. 批处理创建数据库(Sql Server)

    ylbtech-Miscellaneos:批处理创建数据库(Sql Server) 1.A,资源(Resource) - 创建数据返回顶部 1.A.1,InstallDatabases.cmd - 编 ...

  2. 如何转换SQL Server 2008数据库到SQL Server 2005

        背景介绍: 公司一套系统使用的是SQL SERVER 2008数据库,突然一天收到邮件,需要将这套系统部署到各个不同地方(海外)的工厂,需要在各个工厂部署该数据库,等我将准备工作做好,整理文档 ...

  3. sql2008 计划自动创建数据库分区【转】

    本文转自:http://jingyan.baidu.com/article/6b97984d9a26ec1ca3b0bf77.html sql2008 计划自动创建数据库分区 固定增量的数据,自动创建 ...

  4. DataGear 变更部署数据库为SQL Server填坑指南(含转写后的SQL server代码及SQL server配置文件)

    1. 引言 2. 配置数据库链接 3. 引入数据库驱动 4. 手动初始化数据库 5. 改写SQL 6. 其他 7. 参考 1. 引言 DataGear默认使用Derby数据库作为系统的元数据库,至于待 ...

  5. SQL语句创建数据库,SQL语句删除数据库,SQL语句创建表,SQL语句删除表,SQL语句添加约束,SQL语句删除约束

    创建数据库: CREATE DATABASE Test --要创建的数据库名称 ON PRIMARY ( --数据库文件的具体描述 NAME='Test_data', --主数据文件的逻辑名称 FIL ...

  6. 在Windows Server 2008 R2 Server中,连接其他服务器的数据库遇到“未启用当前数据库的 SQL Server Service Broker,因此查询通知不受支持。如果希望使用通知,请为此数据库启用 Service Broker ”

    项目代码和数据库部署在不同的Windows Server 2008 R2 Server中,错误日志显示如下: "未启用当前数据库的 SQL Server Service Broker,因此查 ...

  7. 【数据库】 SQL SERVER 2012 实用新特性

    [数据库] SQL SERVER 2012 实用新特性 官方链接 一. ALWAYS ON - 灾难恢复 二. 列存储索引 - 比非聚集索引效率高,但有索引表不允许修改数据(插入,更新,删除),用于读 ...

  8. SQL问题:未启用当前数据库的 SQL Server Service Broker

    数据库分离后,附加回到数据库,然后在程序中打开调用数据库的页面,出现如下问题:“未启用当前数据库的 SQL Server Service Broker,因此查询通知不受支持.如果希望使用通知,请为此数 ...

  9. C#备份及还原数据库的实现代码(粗略) // 利用C#还原数据库(SQL SERVER)备份文件到指定路径

    C#数据库备份及还原 1.在用户的配置时,我们需要列出当前局域网内所有的数据库服务器,并且要列出指定服务器的所有数据库,实现代码如下: 取得数据库服务器列表: public ArrayList Get ...

随机推荐

  1. 【vuex】mutation和action的区别

    const store = new Vuex.Store({ state: { count: 0 }, mutations: { increment (state) { state.count++ } ...

  2. docker run always

    https://www.cnblogs.com/kaishirenshi/p/10396446.html

  3. H5微信分享相关规范

    微信分享 用户调用微信的分享功能,可以自定义分享的title和描述,以及小图标和链接.可以分享到群.好友.朋友圈.QQ.QQ空间等. 分享设计规范 分享标题:14字以内,建议使用朋友般亲切的口吻 分享 ...

  4. 题解 【NOIP2010】关押罪犯

    [NOIP2010]关押罪犯 Description S城现有两座监狱,一共关押着N名罪犯,编号分别为1~N.他们之间的关系自然也极不和谐.很多罪犯之间甚至积怨已久,如果客观条件具备则随时可能爆发冲突 ...

  5. Remote API(RAPI)之 文件管理

    RAPI库由一组函数组成,这些函数可用于通过桌面应用程序管理设备,包括设备的目录文件.设备的注册表和系统信息. RAPI提供了一组文件管理方法 CeCopyFile:复制文件 CeCreateDire ...

  6. 什么是SYN Flood攻击?

    SYN Flood (SYN洪水) 是种典型的DoS (Denial of Service,拒绝服务) 攻击.效果就是服务器TCP连接资源耗尽,停止响应正常的TCP连接请求. 说到原理,还得从TCP如 ...

  7. HGOI 20191030am 题解

    Problem A 腿部挂件 给出$n$个数的序列$a_i$,支持$T$次操作. 每次操作形如$x , l , r$,计算$\max_{i = l}^{r} (a_i \oplus x)$的值. 对于 ...

  8. 简单消息监听容器--SimpleMessageListenerContainer

    这个类非常强大,我们可以对他做很多设置,对于消费者的配置项,这个类都可以满足监听队列(多个队列).自动启动.自动声明功能可以设置事务特性.事务管理器.事务属性.事务容量(并发).是否开启事务.回滚消息 ...

  9. [c++] C++多态(虚函数和虚继承)

    转自:https://www.jianshu.com/p/02183498a2c2 面向对象的三大特性是封装.继承和多态.多态是非常重要的一个特性,C++多态基于虚函数和虚继承实现,本文将完整挖掘C+ ...

  10. [CSP-S模拟测试]:D(暴力+剪枝)

    题目传送门(内部题47) 输入格式 第一行一个正整数$n$.第二行$n$个正整数,表示序列$A_i$. 输出格式 一行一个正整数,表示答案. 样例 样例输入: 530 60 20 20 20 样例输出 ...