谢谢大家

解决方案 »

  1.   

    VC么?你是要ADO的,还是要Pro*C/C++的呀?
      

  2.   

    你可以到E:\oracle\ora90\precomp\demo\proc随便看一个例子呀
      

  3.   

    #include "F:\Oracle9i\precomp\public\sqlca.h "
    #include "iostream.h"
    #include <stdlib.h>
    EXEC SQL BEGIN DECLARE SECTION;
    VARCHAR username[20];
    VARCHAR password[20];
    EXEC SQL END DECLARE SECTION;
    EXEC SQL INCLUDE sqlca;
    void sqlerror()
    {
      EXEC SQL WHENEVER SQLERROR CONTINUE;
    cout<<"\n Oracle error have detected!"<<endl;
    cout<<"\n"<< (char *)sqlca.sqlerrm.sqlerrmc<<endl;
    EXEC SQL ROLLBACK RELEASE;
    exit(-1);
    }
    int main(int argc, char* argv[])
    {
      EXEC SQL BEGIN DECLARE SECTION;
      int emp_number;
      VARCHAR emp_name[15];
      float salary;
      float commission;
      EXEC SQL END DECLARE SECTION;  int total_number; strcpy(reinterpret_cast<char*>(username.arr),"scott");
      username.len=strlen(reinterpret_cast<char*>(username.arr));
      strcpy(reinterpret_cast<char*>(password.arr),"psusong");
      password.len=strlen(reinterpret_cast<char*>(password.arr));
      EXEC SQL WHENEVER SQLERROR DO  sqlerror();
      EXEC SQL CONNECT :username IDENTIFIED BY :password;
      
      cout<<"I have successed in connecting to the oralce database!"<<endl;  total_number=0;
      while(1)
      {
    emp_number=0;
    cout<<"Please input the employee number (0 to quit) :";
    cin>>emp_number;
    if(emp_number==0)
      break;
    EXEC SQL SELECT ENAME,SAL,COMM
    INTO : emp_name,:salary,:commission
    FROM EMP
    WHERE EMPNO=: emp_number;
    cout<<"\n\nEmployee\tSalary\t Commission\n";
    cout<<"---------------\t------------\t----------------\n";
    emp_name.arr[emp_name.len]='\0';
    cout<<emp_name.arr<<salary<<commission<<endl;
    total_number+=1;
    }
      cout<<"\n\n Total number requeried was :"<<total_number;
      cout<<"\nHave a good day!"<<endl;
      
    EXEC SQL COMMIT WORK RELEASE;
    return 0;
    }---------------
    别忘了添加orasql9.lib,否则无法链接!
      

  4.   

    利用命令行:
    proc  test.pc test.cpp
    编译!
    对出现的错误添加 extern "C" 
    例如:
    extern void sqlcxt (void **, unsigned long *,..)
    改为:
    extern "C" void sqlcxt (void **, unsigned long *,..)