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. springboot自动装备date类型报错问题

    错误消息: Field error in object 'user' on field 'birthday': rejected value [2001-02-14]; codes [typeMism ...

  2. Sereja and Brackets CodeForces - 380C (线段树+分治思路)

    Sereja and Brackets 题目链接: CodeForces - 380C Sereja has a bracket sequence s1, s2, ..., *s**n, or, in ...

  3. java HttpClientUtil帮助类

    自己写的java模拟请求帮助类,已经包含header头构造,会话session维持 package com.haozl.back.util; import java.io.File; import j ...

  4. CSS基础学习-15.CSS3 动画效果

  5. Vue数据通信详解

    如果有需要源代码,请猛戳源代码 希望文章给大家些许帮助和启发,麻烦大家在GitHub上面点个赞!!!十分感谢 一.前言 组件是 vue.js最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着 ...

  6. 银行卡号Luhn校验算法

    /** *银行卡号Luhn校验算法 *luhn校验规则:16位银行卡号(19位通用): *1.将未带校验位的 15(或18)位卡号从右依次编号 1 到 15(18),位于奇数位号上的数字乘以 2. * ...

  7. 深入理解python协程

    目录 概述 生成器变形 yield/send yield send yield from asyncio.coroutine和yield from async和await 概述 由于 cpu和 磁盘读 ...

  8. SpringMVC全局异常统一处理

    SpringMVC全局异常统一处理以及处理顺序最近在使用SpringMVC做全局异常统一处理的时候遇到的问题,就是想把ajax请求和普通的网页请求分开返回json错误信息或者跳转到错误页. 在实际做的 ...

  9. sysbench简易使用

    sysbench简易使用 由于测试需要,需要用到sysbench这个工具.推荐简便使用. # yum 安装 yum install sysbench 创建数据库 CREATE DATABASE `sb ...

  10. 2 zabbix安装与部署

    官方文档:https://www.zabbix.com/documentation/3.0/manual 中文文档  https://www.zabbix.com/documentation/3.4/ ...