达梦数据库SQL语句执行

2019独角兽企业重金招聘Python工程师标准>>> hot3.png


#include 
#include 
#include 
#include 

int main(int argc, char *argv[])
{
      QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
      QString name = "DSN=dmtest;server=localhost;TCP_PORT=5236;uid=SYSDBA;pwd=*********";
      db.setDatabaseName(name);
      if(!db.open())                                      //打开数据库
      {
          qDebug()<<"i am wrong";
          return false;                                   //打开失败
      }
      else
      {
          QSqlQuery query(db); //查询Card表并输出,测试能否正常操作数据库
       
          bool a=query.exec("CREATE TABLE TESTDM.MB(ADDRESSID INT  PRIMARY KEY,ADDRESS1 VARCHAR(60) NOT NULL,ADDRESS2 VARCHAR(60))");
          if(a)
          {
              qDebug()<<"database open success!";
          }

          while(query.next())
          {          
              qDebug()<

如果想使达梦数据库能够正常运行,首先要保证DM-SQL语句的格式正确性,例如代码中

CREATE TABLE TESTDM.MB(ADDRESSID INT  PRIMARY KEY,ADDRESS1 VARCHAR(60) NOT NULL,ADDRESS2 VARCHAR(60))

其中TESTDM是模式名,MB是该模式下的表名

后记:我认为之所以会成功是因为TESTDM模式的模式拥有者是SYSDBA,而数据源的的ID也是SYSDBA,并且SYSDBA权限最大(个人认为是最大),所以能执行成功,并且在SYSDBA账号下,因为权限最大所以基本上所有的模式都能进行SQL语句处理,而如果当初设置数据源时用的不是SYSDBA账号而是其他用户账号,可能非用户下的模式就无法进行SQL语句执行

转载于:https://my.oschina.net/u/3782432/blog/1861547

你可能感兴趣的:(达梦数据库SQL语句执行)