(一)DM实例的创建(DMINIT方式)
!注意:DM实例依据IP地址和端口区别,所以需要注意端口不要重复
1. DMINIT工具创建实例
1. #进入安装的bin目录下运行以下dminit命令
2. #打开DM安装的bin目录
3. cd C:\dmdbms\bin
4. #执行dminit命令创建实例,PATH=数据库存放的路径,DB_NAME=数据库名,INSTANCE_NAME=实例名,PORT_NUM=端口号
5. dminit PATH=C:\dmdbms\data DB_NAME=cndba INSTANCE_NAME=dave PORT_NUM=6666
1. #查看数据库实例
2. cd C:\dmdbms\data
2. DMINIT注册实例服务
#先使用dminit工具创建实例dave,然后使用C:\dmdbms\bin\dmserver.exe注册实例服务
1. cd C:\dmdbms\bin
2. dmserver.exe C:\dmdbms\data\cndba\dm.ini
至此达梦实例服务创建注册完成!
3.qt连接数据库
- windows创建数据源
#cmd执行odbcad32
2. 点击添加按钮
3. 选择DM8 ODBC DRIVER,然后点击完成
4. 输入数据源的名称,服务器ip、端口号、输入用户名(登录ID)、登陆密码(默认用户名和密码均为SYSDBA),输入完成点击确定。
5. 创建完成,用户数据源新增一条数据源dm8_1
4.qt连接数据库代码
//ip=127.0.0.1
//port=6666
//databasename=dm8_1
//username=SYSDBA
//password=SYSDBA
//databasetype=QODBC
//testOnBorrow = true
//testOnBorrowSql = SELECT 1
//maxWaitTime=1000
//waitInterval=200
//maxConnectionCount=10
//创建连接
QSqlDatabase DM8ConnectionPool::createConnection(const QString &connectionName)
{
// 连接已经创建过了,复用它,而不是重新创建
if (QSqlDatabase::contains(connectionName)) {
QSqlDatabase unUsedDb = QSqlDatabase::database(connectionName);
if (testOnBorrow) {
// 返回连接前访问数据库,如果连接断开,重新建立连接
qDebug() << "Test connection on borrow, execute:" << testOnBorrowSql << ", for" << connectionName;
//测试连接
QSqlQuery query(testOnBorrowSql, unUsedDb);
// 若查询报错,或者连接无法打开
if (query.lastError().type() != QSqlError::NoError && !unUsedDb.open()) {
qDebug() << "Open datatabase error:" << query.lastError().text();
return QSqlDatabase();
}
}
return unUsedDb;
}
//新创建连接
QSqlDatabase db = QSqlDatabase::addDatabase(databaseType, connectionName);
db.setHostName(hostName);
db.setPort(port);
db.setDatabaseName(databaseName);
db.setUserName(username);
db.setPassword(password);
if (!db.open()) {
qDebug() << "Open datatabase error:" << db.lastError().text();
return QSqlDatabase();
}
return db;
}
5.需要准备两个动态库(加密)
将两个动态库放在可执行程序所在目录