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. Python:用filter函数求素数 (再理解generator)

    目的:更熟悉应用generator. 参考:https://www.liaoxuefeng.com/wiki/1016959663602400/1017404530360000 素数定义: 素数:质数 ...

  2. 【杂题】cf1041fF. Ray in the tube

    死于没有处理边界 题目描述 题目大意 在两面镜子上各选定一个整数位置的点 A 与 B,并从其中一个点向另一个射出一条光线,使得接收到光线的传感器数量尽可能的多.传感器不重叠. 题目分析 我们来初步考虑 ...

  3. updatedepthtexture 和 screen space shadow 开关

    2018.0.3f 里面directional light开了shadow 就会有一张updatedepth 如果距离远 没有阴影就没有shadow pass 但是updatedepth没有关掉 管线 ...

  4. MariaDB安装与使用

    下载地址:https://downloads.mariadb.org/ 下载相对应的电脑版本程序 等待下载完成...... 安装教程: 双击运行 设置数据库的密码 等待安装完成.. 这样就完成安装了. ...

  5. Oracle之:Function :getdate()

    create or replace function getdate(sp_date varchar) return date is Result date; begin if LENGTH(sp_d ...

  6. Parallels Desktop虚拟机无法关机提示“虚拟机处理器已被操作系统重置”

    如果你在使用PD的时候遇到了这样子的弹窗,恭喜你篇博文可以帮助你,因为我刚刚也遇到了这个问题.如果有帮助可以点一下推荐按钮. 针对Windows电脑 启动虚拟机 创建快照 使用管理员权限运行命令提示符 ...

  7. 24.stark组件全部

    admin组件: 博客里面的图片的是在太难弄了,有大哥会弄给我贴一片博客,我一个一个加太累了,没有加 admin参考:https://www.cnblogs.com/yuanchenqi/articl ...

  8. apache nginx 配置

    <VirtualHost *:80> ServerAdmin test@biuuu.com DocumentRoot E:\web\OTHER\test ServerName zjh.co ...

  9. The 2018 ACM-ICPC Asia Qingdao Regional Contest, Online(2018 青岛网络预选赛)

    A题 A Live Love 原题链接:https://pintia.cn/problem-sets/1036903825309761536/problems/1041155943483625472 ...

  10. 『NOIP 2019Day2 T3』 保卫王国(defense)

    重温NOIP2018的试题,发现只要好好想想还是能想出一些东西的. 比如说本题是一个DDP的模板题,硬是做成了倍增优化DP的题目. 对于给出的$n$个节点的树,每个点都有点权$v_i$,共$Q$次询问 ...