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. vue+django前后端项目部署

    一.python3的安装 1.安装python前的库环境: yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel ...

  2. QTP(2)

    注意: 在使用QTP录制代码时,能使用鼠标点击的就不要使用键盘操作,能单击的操作就不要使用双击 一.QTP的工作流程 1.录制测试脚本前的准备: a.分析被测系统是否可以实现自动化测试 b.分析被测系 ...

  3. mysql.sock丢失问题

    执行下面命令即可 /usr/local/bin/mysqld_safe 摘录于:https://blog.csdn.net/qq_20008173/article/details/87280834

  4. PAT乙级1031

    题目链接 https://pintia.cn/problem-sets/994805260223102976/problems/994805290334011392 题解 emmm.对于每个身份证号, ...

  5. wcPro--WordCount扩展

    Github:https://github.com/whoNamedCody/wcPro PSP表格 PSP2.1 PSP阶段 预估耗时 (分钟) 实际耗时 (分钟) Planning 计划     ...

  6. 让create-react-app支持sass,less

    用create-react-app 创建的项目不支持sass和less,需要手动配置 npm install node-sass sass-loader --save 然后在config/webpac ...

  7. 1 FBV与CBV,前后端分离(初识),postman

    yuan的Blog:https://www.cnblogs.com/yuanchenqi/articles/8715364.html alice的Blog:https://www.cnblogs.co ...

  8. 【GDKOI2018】总结

    前言 车祸现场... day1 T1:其实就是对于每个点的有用的时间点建一个点,然后连边,对于询问(x,y),从点(y,inf),往回走,能走到的最早的x的时间点就是答案. 比赛上用最后的一个多小时来 ...

  9. flask框架(八): 响应和请求

    from flask import Flask from flask import request from flask import render_template from flask impor ...

  10. linux 动态库文件stripped属性理解

    [file命令not stripped] UNIX下*.o和*.so文件显示的stripped和not stripped是什么意思? 表示符号表是否被清除. 在centos 6.2下用file命令查看 ...