kinght2008 发表于 2018-10-14 10:08:18

嵌入式PowerPC通过unixODBC/freetds访问SQL Server数据库(三)

*#include   #include
  #include
  #include
  #include
  SQLHDBC handlestmt;
  SQLHENV handleenv;
  SQLHDBC handlehdbc;
  bool ConnectDB()
  {
  long nRetState = 0;
  nRetState=SQLAllocHandle(SQLHANDLEENV,SQLNULLHANDLE,&handleenv);
  if ((nRetState != SQLSUCCESS) && (nRetState != SQLSUCCESSWITHINFO))
  return false;
  nRetState=SQLSetEnvAttr(handleenv, SQLATTRODBCVERSION, (void)SQLOVODBC3, 0);
  if ((nRetState != SQLSUCCESS) && (nRetState != SQLSUCCESSWITHINFO))
  return false;
  nRetState = SQLAllocHandle(SQLHANDLEDBC, handleenv, &handlehdbc);
  if ((nRetState != SQLSUCCESS) && (nRetState != SQLSUCCESSWITHINFO))
  return false;
  SQLSetConnectAttr(handlehdbc, SQLLOGINTIMEOUT, (SQLPOINTER )5, 0);
  nRetState = SQLConnect(handlehdbc,
  (SQLCHAR) "odbc", SQLNTS,   // 数据源
  (SQLCHAR) "sa", SQLNTS,   // 用户名
  (SQLCHAR) "root", SQLNTS);// 密码
  if ((nRetState != SQLSUCCESS) && (nRetState != SQLSUCCESSWITHINFO))
  return false;
  printf("DB Connected !\n");
  return true;
  }
  bool InsertDB(SQLCHARszSqlCmd)
  {
  long nRetState = 0;
  nRetState=SQLAllocHandle(SQLHANDLESTMT, handlehdbc, &handlestmt);
  if ((nRetState != SQLSUCCESS) && (nRetState != SQLSUCCESSWITHINFO))
  returnfalse;
  nRetState=SQLExecDirect(handlestmt,szSqlCmd,SQLNTS);
  if ((nRetState != SQLSUCCESS) && (nRetState != SQLSUCCESSWITHINFO))
  return false;
  printf("InsertDB Success\n");
  return true;
  }
  bool CloseDB()
  {
  SQLFreeHandle(SQLHANDLESTMT,handlestmt);
  SQLDisconnect(handlehdbc);
  SQLFreeHandle(SQLHANDLEDBC,handlehdbc);
  SQLFreeHandle(SQLHANDLEENV, handleenv);
  printf("Excute Finished !\n");
  return true;
  }
  int main(int argc,char argv[])
  {
  char pSQLCommond = "insert into ReportServer.dbo.userTmp(ID) values(99)";
  SQLCHAR pSQLCommondExe = (SQLCHAR)pSQLCommond;
  if(ConnectDB())
  {
  InsertDB(pSQLCommondExe);
  CloseDB();
  }
  return(0);
  }

页: [1]
查看完整版本: 嵌入式PowerPC通过unixODBC/freetds访问SQL Server数据库(三)