亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 請教一個(gè)pro*c問題,怎樣在一個(gè)線程中連接兩個(gè)數(shù)據(jù)庫 [打印本頁]

作者: pinyin    時(shí)間: 2005-10-13 22:02
標(biāo)題: 請教一個(gè)pro*c問題,怎樣在一個(gè)線程中連接兩個(gè)數(shù)據(jù)庫
建立兩個(gè)連接是這樣的:
    EXEC SQL DECLARE link1 DATABASE;
      EXEC SQL DECLARE link2 DATABASE;
      EXEC SQL CONNECT :usrname1 IDENTIFIED BY :passwd1 AT link1 USING :db1;
      EXEC SQL CONNECT :usrname2 IDENTIFIED BY :passwd2 AT link2 USING :db2;

請問我后面sql語句該怎么指定一個(gè)數(shù)據(jù)庫連接呢?
找了半天資料也沒找到,哪位大俠知道,幫幫忙。
作者: pinyin    時(shí)間: 2005-10-14 09:10
標(biāo)題: 請教一個(gè)pro*c問題,怎樣在一個(gè)線程中連接兩個(gè)數(shù)據(jù)庫
頂頂
作者: mengwg    時(shí)間: 2005-10-14 09:15
標(biāo)題: 請教一個(gè)pro*c問題,怎樣在一個(gè)線程中連接兩個(gè)數(shù)據(jù)庫
參考下面:
  注意 sql_context  用法



  1. int TDb_Connect_Ora::DbConnect(char * dbname,char * username,char * password)
  2. {
  3. EXEC SQL BEGIN DECLARE SECTION;
  4.   char * pusername=username;
  5.   char * ppassword=password;
  6.   sql_context dbarea;
  7.   struct sqlca sqlca;
  8.   char   connect_str[200];
  9. EXEC SQL END DECLARE SECTION;

  10.   printf("dbconnect %s %s\n",dbname,username);
  11.   sqlca.sqlcode=0;
  12.   EXEC SQL ENABLE THREADS;
  13.   EXEC SQL CONTEXT ALLOCATE :dbarea;
  14.   if(sqlca.sqlcode!=0)
  15.   {
  16.     printf("dbconnect %s %s fail\n",dbname,username);
  17.     printf("connect to database error : sqlcode is %d u: %s p: %s\n",sqlca.sqlcode,pusername,ppassword);
  18.     return 0;
  19.   };

  20.   EXEC SQL CONTEXT USE :dbarea;
  21.   if(sqlca.sqlcode!=0)
  22.   {
  23.     printf("dbconnect %s %s fail\n",dbname,username);
  24.     printf("connect to database error : sqlcode is %d u: %s p: %s\n",sqlca.sqlcode,pusername,ppassword);
  25.     return 0;
  26.   };

  27.   strcpy(mUserName,username);
  28.   strcpy(mPassWord,password);
  29.   strcpy(mDbName,dbname);

  30.   if(password[0]!=0)
  31.     sprintf(connect_str,"%s/%s",pusername,ppassword);
  32.   else
  33.     sprintf(connect_str,"%s",pusername);

  34.   EXEC SQL CONNECT :connect_str;
  35.   //EXEC SQL CONNECT :pusername IDENTIFIED BY :ppassword;
  36.   if(sqlca.sqlcode!=0)
  37.   {
  38.     printf("dbconnect %s %s fail\n",dbname,username);
  39.     printf("connect to database error : sqlcode is %d u: %s p: %s\n",sqlca.sqlcode,pusername,ppassword);
  40.     return 0;
  41.   };
  42.   mDbAreaList=dbarea;      
  43.   printf("dbconnect %s %s ok\n",dbname,username);
  44.   return 1;
  45. }

  46. void TDb_Connect_Ora::DbDisconnect()
  47. {
  48. EXEC SQL BEGIN DECLARE SECTION;
  49.   sql_context dbarea=mDbAreaList;
  50.   struct sqlca sqlca;
  51. EXEC SQL END DECLARE SECTION;

  52. EXEC SQL CONTEXT USE :dbarea;
  53.   DbExecuteSql(NULL,"commit");
  54.   EXEC SQL COMMIT WORK RELEASE;
  55.   EXEC SQL CONTEXT FREE :dbarea;
  56. }

復(fù)制代碼

作者: pinyin    時(shí)間: 2005-10-14 09:33
標(biāo)題: 請教一個(gè)pro*c問題,怎樣在一個(gè)線程中連接兩個(gè)數(shù)據(jù)庫
謝謝mengwg的熱心幫助。
可能是我沒說清楚,多線程多個(gè)連接我是沒問題的。
我是想在一個(gè)線程里連兩個(gè)不同的數(shù)據(jù)庫,從數(shù)據(jù)庫1中取出數(shù)據(jù)然后存入到數(shù)據(jù)庫2中。
作者: 酷酷長大了    時(shí)間: 2005-10-14 09:43
標(biāo)題: 請教一個(gè)pro*c問題,怎樣在一個(gè)線程中連接兩個(gè)數(shù)據(jù)庫
可不可以先這樣:EXEC SQL DATABASE db1;取數(shù)據(jù);EXEC SQL CLOSE DATABASE; 然后再EXEC SQL DATABASE db2;存數(shù)據(jù);EXEC SQL CLOSE DATABASE;
作者: pinyin    時(shí)間: 2005-10-14 09:47
標(biāo)題: 請教一個(gè)pro*c問題,怎樣在一個(gè)線程中連接兩個(gè)數(shù)據(jù)庫
to:酷酷長大了
不行的,因?yàn)閐b1中是一批數(shù)據(jù),數(shù)據(jù)量非常大,我要用游標(biāo)取出一條到db2中做對(duì)應(yīng)的動(dòng)作,然后再取下一條。
作者: mengwg    時(shí)間: 2005-10-14 10:26
標(biāo)題: 請教一個(gè)pro*c問題,怎樣在一個(gè)線程中連接兩個(gè)數(shù)據(jù)庫
原帖由 "pinyin" 發(fā)表:
謝謝mengwg的熱心幫助。
可能是我沒說清楚,多線程多個(gè)連接我是沒問題的。
我是想在一個(gè)線程里連兩個(gè)不同的數(shù)據(jù)庫,從數(shù)據(jù)庫1中取出數(shù)據(jù)然后存入到數(shù)據(jù)庫2中。


1\ 可以試試工作區(qū)切換.
2\ 做dblink最簡單,用一個(gè)數(shù)據(jù)庫操作.
作者: pinyin    時(shí)間: 2005-10-14 11:08
標(biāo)題: 請教一個(gè)pro*c問題,怎樣在一個(gè)線程中連接兩個(gè)數(shù)據(jù)庫
謝謝,已解決了
這樣使用sql就行了:
EXEC SQL AT link1 select count(1) into:count1 from tbtest;




歡迎光臨 Chinaunix (http://72891.cn/) Powered by Discuz! X3.2