SqlDb_.cs
/*****************************************************************************
创建时间 :2006年12月19日
文件名 :SqlDb_.cs
文件名 :微软数据库
作者 :李锋
Email :runzhilf@139.com
联系电话 :13828778863,25722732
AdKeyPrimary 关键字是主关键字。
AdKeyForeign 关键字是外部关键字。
AdKeyUnique 关键字是唯一的。
需要添加的引用:
(1)Microsoft SQLDMO Object Library
(2)Microsoft ADO Ext. 6.0 for DDL and Security
(3)Microsoft ActiveX Data Objects 2.8 Library
-------------------最后一次修改时间:2016年11月22日
*******************************************************************************/
#if _WINDOWS_PLATFORM_
using System;
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;
namespace lf
{
/// <summary>
/// 用于访问SQLServer数据库的类
/// </summary>
public class SqlDb_ : Db_
{
private string m_dbName;
private string m_userName;
private string m_userPassword;
private string m_dbSqource;
public SqlConnection m_connection;
public SqlConnection m_connection_query;
public SqlConnection m_connection_view;
public SqlDataAdapter m_adapter_query;
public SqlDataAdapter m_adapter_view;
/// <summary>
/// 执行特定的SQL内容
/// </summary>
/// <param name="sCaptionName">标题名</param>
/// <param name="sCheckTableName">需要检查的表名</param>
/// <returns></returns>
public override bool exec_dict_sql_content(string sCaptionName, string sCheckTableName)
{
DataTable dt1, dt2;
if (sCheckTableName == "")
{
dt1 = ExecSQLQuery("SELECT [name] FROM sysobjects WHERE [name] = N\'" +
sCaptionName + "\' AND type = \'U\'");
}
else
{
dt1 = ExecSQLQuery("SELECT [name] FROM sysobjects WHERE [name] = N\'" +
sCheckTableName + "\' AND type = \'U\'");
}
if (dt1.Rows.Count == 0)
{
dt2 = LDB_Global.db_repository.ExecSQLQuery("SELECT fd_content FROM dict_sql " +
" WHERE fd_caption =\'" + sCaptionName + "\'");
if (dt2.Rows.Count > 0)
{
string ssql = dt2.Rows[0]["fd_content"].ToString();
if (ssql.Trim().Length == 0)
{
throw new Exception("sql内容不能为空!");
}
ExecSQLText(ssql.Replace("co_example", database_name));
return true;
}
}
return false;
}
//-----------------------------------------------------------------------属性
/// <summary>
/// 数据库名子
/// </summary>
public override string database_name
{
get
{
return m_dbName;
}
}
/// <summary>
/// 数据库用户
/// </summary>
public override string user_name
{
get
{
return m_userName;
}
}
/// <summary>
/// 数据库密码
/// </summary>
public override string user_password
{
get
{
return m_userPassword;
}
}
/// <summary>
/// 提供数据源的数据服务器名
/// </summary>
public override string database_source
{
get
{
return m_dbSqource;
}
}
/// <summary>
/// 创建个人信息表
/// </summary>
/// <returns></returns>
public override bool create_crm_natural_person()
{
return exec_dict_sql_content("crm_natural_person", "");
}
/// <summary>
/// 创建公司信息表
/// </summary>
/// <returns></returns>
public override bool create_crm_company()
{
return exec_dict_sql_content("crm_company", "");
}
/// <summary>
/// 创建员工信息表
/// </summary>
/// <returns></returns>
public override bool create_crm_employee()
{
return exec_dict_sql_content("crm_employee", "");
}
/// <summary>
/// 创建角色表crm_role,登陆成员表crm_login_member,在线成员表crm_online_member,成员登陆信息表crm_login_info
/// </summary>
/// 创建时间: 2021-10-03 最后一次修改时间:2021-10-03
/// <returns></returns>
public override bool create_crm_rote()
{
return exec_dict_sql_content("crm_rote", "");
}
/// <summary>
/// 创建个人通信录视图
/// </summary>
/// <returns></returns>
public override bool create_pro_crm_np_AddressBook_view()
{
return exec_dict_sql_content("pro_crm_np_AddressBook_view", "");
}
/// <summary>
/// 创建关系信息表
/// </summary>
/// <returns></returns>
public override bool create_crm_relation()
{
return exec_dict_sql_content("crm_relation", "");
}
/// <summary>
/// 创建银行帐户
/// </summary>
/// <returns></returns>
public override bool create_fc_bank()
{
return exec_dict_sql_content("fc_bank", "");
}
/// <summary>
/// 创建审批流表
/// </summary>
/// <returns></returns>
public override bool create_co_approval_flow()
{
return exec_dict_sql_content("co_approval_flow", "");
}
/// <summary>
/// 创建个人相关模块
/// </summary>
/// <returns></returns>
public override bool create_个人相关()
{
return exec_dict_sql_content("个人相关", "");
}
/// <summary>
/// 资产管理 ------------------------商品表
/// </summary>
/// <returns></returns>
public override bool create_dict_merchandise()
{
return exec_dict_sql_content("dict_merchandise", "");
}
/// <summary>
/// 资产管理 ------------------------资产管理
/// </summary>
/// <returns></returns>
public override bool create_资产管理()
{
return exec_dict_sql_content("资产管理", "");
}
/// <summary>
/// 资产视图
/// </summary>
/// <returns></returns>
public override bool create_pro_assets_view()
{
return exec_dict_sql_content("pro_assets_view", "");
}
/// <summary>
/// ------------------------------------------------------------------------------创建合同管理模块
/// </summary>
/// <returns></returns>
public override bool create_crm_contract()
{
return exec_dict_sql_content("crm_contract", "");
}
/// <summary>
/// 资产分类视图
/// </summary>
/// <returns></returns>
public override bool create_pro_assets_class_view()
{
return exec_dict_sql_content("pro_assets_class_view", "");
}
/// <summary>
/// 创建项目信息表
/// </summary>
/// <returns></returns>
public override bool create_crm_project()
{
return exec_dict_sql_content("crm_project", "");
}
/// <summary>
/// 创建每天支出记录
/// </summary>
/// <returns></returns>
public override bool create_co_payout()
{
return exec_dict_sql_content("co_payout", "");
}
/// <summary>
/// 创建每天支出记录的触发器
/// </summary>
/// <returns></returns>
public override bool create_co_payout_trigger()
{
DataTable dt1, dt2;
dt1 = ExecSQLQuery("SELECT OBJECT_ID (\'Update_co_payout\', \'TR\') Update_co_payout");
if (dt1.Rows.Count > 0)
{
if (dt1.Rows[0]["Update_co_payout"] == DBNull.Value)
{
dt2 = LDB_Global.db_repository.ExecSQLQuery("SELECT fd_content FROM crm_sql " +
" WHERE fd_caption =\'co_payout_trigger\'");
if (dt2.Rows.Count > 0)
{
string ssql = dt2.Rows[0]["fd_content"].ToString();
ExecSQLText(ssql.Replace("co_sample", database_name));
return true;
}
}
}
return false;
}
/// <summary>
/// 如果系统表不存在,则自动创建
/// </summary>
/// <returns></returns>
public override bool create_System()
{
return exec_dict_sql_content("System", "");
}
/// <summary>
/// 创建登陆信息表
/// </summary>
/// <returns></returns>
public override bool create_co_login_info()
{
DataTable dt1, dt2;
dt1 = ExecSQLQuery("SELECT [name] FROM sysobjects WHERE [name] = N\'co_login_info\' AND type = \'U\'");
if (dt1.Rows.Count == 0)
{
dt2 = LDB_Global.db_repository.ExecSQLQuery("SELECT fd_content FROM crm_sql " +
" WHERE fd_caption =\'co_login_info\'");
if (dt2.Rows.Count > 0)
{
string ssql = dt2.Rows[0]["fd_content"].ToString();
ExecSQLText(ssql.Replace("co_sample", database_name));
return true;
}
}
return false;
}
public override bool create_co_runtime_parameter()
{
return exec_dict_sql_content("co_runtime_parameter", "");
}
public override bool create_co_runtime_user()
{
return exec_dict_sql_content("co_runtime_user", "");
}
/// <summary>
/// 创建现金记录
/// </summary>
/// <returns></returns>
public override bool create_co_cash()
{
return exec_dict_sql_content("co_cash", "");
}
/// <summary>
/// 创建定价表
/// </summary>
/// <returns></returns>
public override bool create_co_pricing_of_product()
{
return exec_dict_sql_content("co_pricing_of_product", "");
}
//-----------------------------------------------------------------------重写
/// <summary>
/// 直接运行SQL文本,先要添加sqldmo COM组件 COM 引用 "Microsoft SQLDMO Object Library"
/// </summary>
/// <param name="sText"></param>
public override bool ExecSQLText(string sText)
{
return smo.ExecSQLText(sText, this);
}
/// <summary>
/// 直接执行SQL文件。
/// </summary>
/// <param name="sFileName">文件名</param>
/// <returns></returns>
public override bool ExecSQLFile(string sFileName)
{
System.IO.StreamReader si = new System.IO.StreamReader(sFileName);
if (si == null)
return false;
string ssql = si.ReadToEnd();
si.Close();
return ExecSQLText(ssql);
}
public override DbConnection GetConnection()
{
return m_connection;
}
public override DbDataAdapter GetViewDbDataAdapter()
{
return m_adapter_view;
}
public override int ExecNonSQL(string sSQL)
{
#if _LF_DEBUG_
LDB_Global.s_ExecNonSQL += sSQL;
LDB_Global.s_ExecNonSQL += "\r\n";
#endif
if (sSQL.Trim().Length == 0)
{
lg.ShowInfo("错误:传递的参数sSQL不能为空字符串!");
return 0;
}
//lg.ShowDialogText(sSQL);
SqlConnection oConn = new SqlConnection(m_connection.ConnectionString);
SqlCommand oComm = new SqlCommand(sSQL, oConn);
oComm.Connection.Open();
int n = oComm.ExecuteNonQuery();
oComm.Dispose();
oConn.Close();
oConn.Dispose();
return n;
}
/// <summary>
/// 在路径sPath下创建一个数据库。
/// </summary>
/// <param name="sDatabaseName">数据库名</param>
/// <param name="sPath">路径名</param>
/// 创建时间:????-??-?? 最后一次修改时间:2020-04-03
/// <returns>如果成功,则返回空字符串,失败返回错误原因。</returns>
public override string CreateDatabase(string sDatabaseName, string sPath = "")
{
String sTruePath;
if (sPath.Trim().Length == 0)
sTruePath = LDB_Global.sqlserver_db_path;
else
sTruePath = sPath;
SqlDb_ db = new SqlDb_("master", m_userName, m_userPassword, m_dbSqource);
string ssql = "SELECT * FROM master..sysdatabases WHERE [name]=\'" + sDatabaseName + "\'";
DataTable dt = db.ExecSQLQuery(ssql);
if (dt.Rows.Count > 0)
{
return sDatabaseName + "数据库已存在!";
}
ssql = "use master " + "\n";
ssql += "IF NOT EXISTS(SELECT * FROM master..sysdatabases WHERE [name] = \'" +
sDatabaseName + "\')" + " \n";
ssql += "BEGIN " + " \n";
ssql += "CREATE DATABASE [" + sDatabaseName + "] \n";
ssql += "ON " + " \n";
ssql += "(NAME = [" + sDatabaseName + "_data], " + " \n";
ssql += " FILENAME = \'" + sTruePath + sDatabaseName + "_Data.mdf')" + " \n";
ssql += "LOG ON " + " \n";
ssql += "(NAME = [" + sDatabaseName + "_log], " + " \n";
ssql += "FILENAME = \'" + sTruePath + sDatabaseName + "_Log.ldf') " + "\n";
ssql += "END " + "\n";
db.ExecNonSQL(ssql);
ssql = "SELECT * FROM master..sysdatabases WHERE name=\'" + sDatabaseName + "\'";
dt = db.ExecSQLQuery(ssql);
if(dt.Rows.Count > 0)
{
return "";
}
else
{
return "无法创建数据库" + sDatabaseName +",未知原因!";
}
}
public SqlDb_(string sDBName, string sUserName, string sPwd, string sServer) : base(DataFormat_.dfSQLServer)
{
m_dbName = sDBName;
m_userName = sUserName;
m_userPassword = sPwd;
m_dbSqource = sServer;
string cs = "server=" + sServer + ";uid=" + sUserName + ";pwd=" + sPwd + ";database=" + sDBName;
m_connection = new SqlConnection();
m_connection.ConnectionString = cs;
m_connection_query = new SqlConnection();
m_connection_query.ConnectionString = cs;
m_adapter_query = new SqlDataAdapter("", m_connection_query);
m_connection_view = new SqlConnection();
m_connection_view.ConnectionString = cs;
m_adapter_view = new SqlDataAdapter("", m_connection_view);
}
}//---------------------------------------------------------------l-SqlDb_
}//-------------------------------------------------------------------------------------lf
#endif//---------------------------------------------------------------------------------------_WINDOWS_PLATFORM_
csharp_SqlDb.h
/*****************************************************************************
创建时间 : 2006年12月19日
文件名 : csharp_SqlDb.h 翻译来自C#写的类(凡是后面带_csharp都是翻译自C#写的类)
作者 : 李锋
Email : ruizhilf@139.com
联系电话 : 13828778863,25722732
----------------------最后一次修改时间:2020年05月09日
*******************************************************************************/
#pragma once
///
#include "csharp_db.h"
_LF_BEGIN_
ref class csharp_SqlDb : csharp_db
{
public:
SqlConnection^ m_connection;
SqlConnection^ m_connection_query;
SqlConnection^ m_connection_view;
SqlDataAdapter^ m_adapter_query;
SqlDataAdapter^ m_adapter_view;
/// <summary>
/// 执行特定的SQL内容
/// </summary>
/// <param name="sCaptionName">标题名</param>
/// <param name="sCheckTableName">需要检查的表名</param>
/// <returns></returns>
bool exec_dict_sql_content(String^ sCaptionName, String^ sCheckTableName) override;
//-----------------------------------------------------------------------属性
/// <summary>
/// 创建个人信息表
/// </summary>
/// <returns></returns>
bool create_crm_natural_person() override;
/// <summary>
/// 创建公司信息表
/// </summary>
/// <returns></returns>
bool create_crm_company() override;
/// <summary>
/// 创建员工信息表
/// </summary>
/// <returns></returns>
bool create_crm_employee()override;
/// <summary>
/// 创建角色表csharp_crm_role,登陆成员表crm_login_member,在线成员表crm_online_member,成员登陆信息表crm_login_info
/// </summary>
/// 创建时间: 2021-10-03 最后一次修改时间:2021-10-03
/// <returns></returns>
bool create_crm_rote()override;
/// <summary>
/// 创建个人通信录视图
/// </summary>
/// <returns></returns>
bool create_pro_crm_np_AddressBook_view()override;
/// <summary>
/// 创建关系信息表
/// </summary>
/// <returns></returns>
bool create_crm_relation()override;
/// <summary>
/// 创建银行帐户
/// </summary>
/// <returns></returns>
bool create_fc_bank()override;
/// <summary>
/// 创建审批流表
/// </summary>
/// <returns></returns>
bool create_co_approval_flow()override;
/// <summary>
/// 创建个人相关模块
/// </summary>
/// <returns></returns>
bool create_个人相关()override;
/// <summary>
/// 资产管理 ------------------------商品表
/// </summary>
/// <returns></returns>
bool create_dict_merchandise()override;
/// <summary>
/// 资产管理 ------------------------资产管理
/// </summary>
/// <returns></returns>
bool create_资产管理()override;
/// <summary>
/// 资产视图
/// </summary>
/// <returns></returns>
bool create_pro_assets_view()override;
/// <summary>
/// ------------------------------------------------------------------------------创建合同管理模块
/// </summary>
/// <returns></returns>
bool create_crm_contract()override;
/// <summary>
/// 资产分类视图
/// </summary>
/// <returns></returns>
bool create_pro_assets_class_view()override;
/// <summary>
/// 创建项目信息表
/// </summary>
/// <returns></returns>
bool create_crm_project()override;
/// <summary>
/// 创建每天支出记录
/// </summary>
/// <returns></returns>
bool create_co_payout()override;
/// <summary>
/// 创建每天支出记录的触发器
/// </summary>
/// <returns></returns>
bool create_co_payout_trigger()override;
/// <summary>
/// 如果系统表不存在,则自动创建
/// </summary>
/// <returns></returns>
bool create_System()override;
/// <summary>
/// 创建登陆信息表
/// </summary>
/// <returns></returns>
bool create_co_login_info()override;
bool create_co_runtime_parameter()override;
bool create_co_runtime_user()override;
/// <summary>
/// 创建现金记录
/// </summary>
/// <returns></returns>
bool create_co_cash()override;
/// <summary>
/// 创建定价表
/// </summary>
/// <returns></returns>
bool create_co_pricing_of_product()override;
//-----------------------------------------------------------------------重写
/// <summary>
/// 直接运行SQL文本,先要添加sqldmo COM组件 COM 引用 "Microsoft SQLDMO Object Library"
/// </summary>
/// <param name="sText"></param>
bool ExecSQLText(String^ sText)override;
/// <summary>
/// 直接执行SQL文件。
/// </summary>
/// <param name="sFileName">文件名</param>
/// <returns></returns>
bool ExecSQLFile(String^ sFileName)override;
DbConnection^ GetConnection()override;
DbDataAdapter^ GetViewDbDataAdapter()override;
int ExecNonSQL(String^ sSQL)override;
/// <summary>
/// 在路径sPath下创建一个数据库。
/// </summary>
/// <param name="sDatabaseName">数据库名</param>
/// <param name="sPath">路径名</param>
/// 创建时间:????-??-?? 最后一次修改时间:2020-04-03
/// <returns>如果成功,则返回空字符串,失败返回错误原因。</returns>
String^ CreateDatabase(String^ sDatabaseName, String^ sPath)override;
csharp_SqlDb(String^ sDBName, String^ sUserName, String^ sPwd, String^ sServer);
};
_LF_END_
csharp_SqlDb.cpp
#include "csharp_DB_Global.h"
#include "csharp_smo.h"
#include "csharp_SqlDb.h"
_LF_BEGIN_
bool csharp_SqlDb::exec_dict_sql_content(String^ sCaptionName, String^ sCheckTableName)
{
DataTable ^dt1, ^dt2;
if (sCheckTableName == "")
{
dt1 = ExecSQLQuery("SELECT [name] FROM sysobjects WHERE [name] = N\'" +
sCaptionName + "\' AND type = \'U\'");
}
else
{
dt1 = ExecSQLQuery("SELECT [name] FROM sysobjects WHERE [name] = N\'" +
sCheckTableName + "\' AND type = \'U\'");
}
if (dt1->Rows->Count == 0)
{
dt2 = csharp_DB_Global::db_repository->ExecSQLQuery("SELECT fd_content FROM dict_sql " +
" WHERE fd_caption =\'" + sCaptionName + "\'");
if (dt2->Rows->Count > 0)
{
String^ ssql = dt2->Rows[0]["fd_content"]->ToString();
if (ssql->Trim()->Length == 0)
{
throw gcnew Exception("sql内容不能为空!");
}
ExecSQLText(ssql->Replace("co_example", database_name));
return true;
}
}
return false;
}
bool csharp_SqlDb::create_crm_natural_person()
{
return exec_dict_sql_content("crm_natural_person", "");
}
bool csharp_SqlDb::create_crm_company()
{
return exec_dict_sql_content("crm_company", "");
}
bool csharp_SqlDb::create_crm_employee()
{
return exec_dict_sql_content("crm_employee", "");
}
bool csharp_SqlDb::create_crm_rote()
{
return exec_dict_sql_content("crm_rote", "");
}
bool csharp_SqlDb::create_pro_crm_np_AddressBook_view()
{
return exec_dict_sql_content("pro_crm_np_AddressBook_view", "");
}
bool csharp_SqlDb::create_crm_relation()
{
return exec_dict_sql_content("csharp_crm_relation", "");
}
bool csharp_SqlDb::create_fc_bank()
{
return exec_dict_sql_content("fc_bank", "");
}
bool csharp_SqlDb::create_co_approval_flow()
{
return exec_dict_sql_content("co_approval_flow", "");
}
bool csharp_SqlDb::create_个人相关()
{
return exec_dict_sql_content("个人相关", "");
}
bool csharp_SqlDb::create_dict_merchandise()
{
return exec_dict_sql_content("dict_merchandise", "");
}
bool csharp_SqlDb::create_资产管理()
{
return exec_dict_sql_content("资产管理", "");
}
bool csharp_SqlDb::create_pro_assets_view()
{
return exec_dict_sql_content("pro_assets_view", "");
}
bool csharp_SqlDb::create_crm_contract()
{
return exec_dict_sql_content("crm_contract", "");
}
bool csharp_SqlDb::create_pro_assets_class_view()
{
return exec_dict_sql_content("pro_assets_class_view", "");
}
bool csharp_SqlDb::create_crm_project()
{
return exec_dict_sql_content("crm_project", "");
}
bool csharp_SqlDb::create_co_payout()
{
return exec_dict_sql_content("co_payout", "");
}
bool csharp_SqlDb::create_co_payout_trigger()
{
DataTable ^dt1, ^ dt2;
dt1 = ExecSQLQuery("SELECT OBJECT_ID (\'Update_co_payout\', \'TR\') Update_co_payout");
if (dt1->Rows->Count > 0)
{
if (dt1->Rows[0]["Update_co_payout"] == DBNull::Value)
{
dt2 = csharp_DB_Global::db_repository->ExecSQLQuery("SELECT fd_content FROM crm_sql " +
" WHERE fd_caption =\'co_payout_trigger\'");
if (dt2->Rows->Count > 0)
{
String^ ssql = dt2->Rows[0]["fd_content"]->ToString();
ExecSQLText(ssql->Replace("co_sample", database_name));
return true;
}
}
}
return false;
}
bool csharp_SqlDb::create_System()
{
return exec_dict_sql_content("System", "");
}
bool csharp_SqlDb::create_co_login_info()
{
DataTable ^dt1, ^dt2;
dt1 = ExecSQLQuery("SELECT [name] FROM sysobjects WHERE [name] = N\'co_login_info\' AND type = \'U\'");
if (dt1->Rows->Count == 0)
{
dt2 = csharp_DB_Global::db_repository->ExecSQLQuery("SELECT fd_content FROM crm_sql " +
" WHERE fd_caption =\'co_login_info\'");
if (dt2->Rows->Count > 0)
{
String^ ssql = dt2->Rows[0]["fd_content"]->ToString();
ExecSQLText(ssql->Replace("co_sample", database_name));
return true;
}
}
return false;
}
bool csharp_SqlDb::create_co_runtime_parameter()
{
return exec_dict_sql_content("co_runtime_parameter", "");
}
bool csharp_SqlDb::create_co_runtime_user()
{
return exec_dict_sql_content("co_runtime_user", "");
}
bool csharp_SqlDb::create_co_cash()
{
return exec_dict_sql_content("co_cash", "");
}
bool csharp_SqlDb::create_co_pricing_of_product()
{
return exec_dict_sql_content("co_pricing_of_product", "");
}
bool csharp_SqlDb::ExecSQLText(String^ sText)
{
return smo::ExecSQLText(sText, this);
}
bool csharp_SqlDb::ExecSQLFile(String^ sFileName)
{
System::IO::StreamReader^ si = gcnew System::IO::StreamReader(sFileName);
if (si == null)
return false;
String^ ssql = si->ReadToEnd();
si->Close();
return ExecSQLText(ssql);
}
DbConnection^ csharp_SqlDb::GetConnection()
{
return m_connection;
}
DbDataAdapter^ csharp_SqlDb::GetViewDbDataAdapter()
{
return m_adapter_view;
}
int csharp_SqlDb::ExecNonSQL(String^ sSQL)
{
#if _LF_DEBUG_
csharp_DB_Global::s_ExecNonSQL += sSQL;
csharp_DB_Global::s_ExecNonSQL += "\r\n";
#endif
if (sSQL->Trim()->Length == 0)
{
gce::ShowInfo("错误:传递的参数sSQL不能为空字符串!");
return 0;
}
//gce::ShowDialogText(sSQL);
SqlConnection^ oConn = gcnew SqlConnection(m_connection->ConnectionString);
SqlCommand^ oComm = gcnew SqlCommand(sSQL, oConn);
oComm->Connection->Open();
int n = oComm->ExecuteNonQuery();
//oComm->Dispose();
oComm->Clone();
oConn->Close();
//oConn->Dispose();
return n;
}
String^ csharp_SqlDb::CreateDatabase(String^ sDatabaseName, String^ sPath)
{
String^ sTruePath;
if (sPath->Trim()->Length == 0)
sTruePath = csharp_DB_Global::sqlserver_db_path;
else
sTruePath = sPath;
csharp_SqlDb^ db = gcnew csharp_SqlDb("master", this->database_name,this->user_password,this->database_source);
String^ ssql = "SELECT * FROM master..sysdatabases WHERE [name]=\'" + sDatabaseName + "\'";
DataTable ^dt = db->ExecSQLQuery(ssql);
if (dt->Rows->Count > 0)
{
return sDatabaseName + "数据库已存在!";
}
ssql = "use master " + "\n";
ssql += "IF NOT EXISTS(SELECT * FROM master..sysdatabases WHERE [name] = \'" +
sDatabaseName + "\')" + " \n";
ssql += "BEGIN " + " \n";
ssql += "CREATE DATABASE [" + sDatabaseName + "] \n";
ssql += "ON " + " \n";
ssql += "(NAME = [" + sDatabaseName + "_data], " + " \n";
ssql += " FILENAME = \'" + sTruePath + sDatabaseName + "_Data.mdf')" + " \n";
ssql += "LOG ON " + " \n";
ssql += "(NAME = [" + sDatabaseName + "_log], " + " \n";
ssql += "FILENAME = \'" + sTruePath + sDatabaseName + "_Log.ldf') " + "\n";
ssql += "END " + "\n";
db->ExecNonSQL(ssql);
ssql = "SELECT * FROM master..sysdatabases WHERE name=\'" + sDatabaseName + "\'";
dt = db->ExecSQLQuery(ssql);
if (dt->Rows->Count > 0)
{
return "";
}
else
{
return "无法创建数据库" + sDatabaseName + ",未知原因!";
}
}
csharp_SqlDb::csharp_SqlDb(String^ sDBName, String^ sUserName, String^ sPwd, String^ sServer)
: csharp_db(csharp_DataFormat::dfSQLServer)
{
this->database_name = sDBName;
this->user_name = sUserName;
this->user_password = sPwd;
this->database_source = sServer;
String^ cs = "server=" + sServer + ";uid=" + sUserName + ";pwd=" + sPwd + ";database=" + sDBName;
m_connection = gcnew SqlConnection();
m_connection->ConnectionString = cs;
m_connection_query = gcnew SqlConnection();
m_connection_query->ConnectionString = cs;
m_adapter_query = gcnew SqlDataAdapter("", m_connection_query);
m_connection_view = gcnew SqlConnection();
m_connection_view->ConnectionString = cs;
m_adapter_view = gcnew SqlDataAdapter("", m_connection_view);
}
_LF_END_