本帖最后由 sunbingbingfree2 于 2011-08-18 10:57:29 编辑

解决方案 »

  1.   

        问题出在include="C:\Program Files\Microsoft Visual Studio\VC98\Include"    首先确保C:\Program Files\Microsoft Visual Studio\VC98\Include路径是正确的。
        其次我猜是文件路径分割方式的原因。‘/'分隔符是跨平台的文件路径分割方式,而'\'只是window特有的。pro*c/c++ 工具是一个跨平台的开发工具,不出意外的话会采用‘/'分隔符。因此你把parse=full
    include="C:\Program Files\Microsoft Visual Studio\VC98\Include"
    include="C:\oracle\precomp\public"
    include="C:\oracle\oci\include"    改为parse=full
    include="C:/Program Files/Microsoft Visual Studio/VC98/Include"
    include="C:/oracle/precomp/public"
    include="C:/oracle/oci/include"
        
        试试。
      

  2.   

    我试过了,还是提示一样的错误:系统默认选项值取自于: C:\oracle\precomp\admin\pcscfg.cfgPCC-F-02044, CMD-LINE:选项值非法或超出范围:  Studio/VC98/Include
      

  3.   

    亲,你把pcscfg.cfg的内部全部清空!!!!包括以前的内容也全部清空!!!
    (清空前先备份一下)
      

  4.   

    那个那个,你再把makefile文件贴出来看看。
    咦?你是直接用proc +文件名编译的么?
      

  5.   


    我用oracle的pro*c/c++工具进行预编译的,也直接在命令行用过proc命令预编译,都是提示一样的错误。比如我虽然在pcscfg.cfg文件中已经加了一些设置:
    parse=full
    include="C:\Program Files\Microsoft Visual Studio\VC98\Include"
    include="C:\oracle\precomp\public"
    include="C:\oracle\oci\include"
    但预编译时还是会提示错误:“打不开C的那些头文件”,于是我又在pro*c/c++工具的设置里面加上了对C的头文件路径的包含,于是就提示“系统默认选项值取自于: C:\oracle\precomp\admin\pcscfg.cfg
    PCC-F-02044, CMD-LINE:选项值非法或超出范围: Studio/VC98/Include”这个错误。所以我觉得我的pcscfg.cfg文件的设置完全没有发挥作用。我按你说的,把它清空了,错误提示不变。
    还有,你说的makefile文件是什么呢?我没有用过啊,亲我的代码非常简单,如下:
    #include <stdio.h>
    #include <string.h>
    #include <stdlib.h>
    #include <conio.h>
    #include <sqlca.h>
    void sql();
    int main()
    {
       char username[10],password[10],server[10];
         printf("输入用户名:\n");
         gets(username);
         printf("输入口令:\n");
        gets(password);
        printf("输入网络服务名:\n");
       gets(server);
       EXEC SQL CONNECT:username IDENTIFIED BY:password USING:server;
       if(sqlca.sqlcode==0)
       printf("连接成功!\n");
       else
             printf("%.*s/n",sqlca.sqlerrm.sqlerrml,sqlca.sqlerrm.sqlerrmc);
       getch();
       sql();
    EXEC SQL COMMIT RELEASE;
       return 0;
    }void sql()
    {
    int dno;
    char dept_name[15],dept_loc[14];
    printf("请输入部门号:");
    scanf("%d",&dno);
    fflush(stdin);

    EXEC SQL SELECT dname,loc INTO :dept_name,:dept_loc FROM dept
             WHERE deptno = :dno;
    if(sqlca.sqlcode==0)
    printf("部门名:%s,部门位置:%s\n",dept_name,dept_loc);
    }
      

  6.   


    我的pcscfg.cfg文件里总共只有一下几句话:define=(WIN32_LEAN_AND_MEAN)
    parse=full
    include=C:\oracle\precomp\public
    include=C:\oracle\oci\include
    include=C:\Program Files\Microsoft Visual Studio\VC98\Include不知道是我设置有问题还是怎么了,总是预编译通不过
      

  7.   

    编译通不过,总该有错误信息吧,为何不帖出来?????还有,你在vc6中预编译和用oracle自带的pro*c/c++工具,难道不是同一个吗?(我认为都是proc.exe)。你的这两种编译方式,一种是在vc6下,一种是命令行吧。
      

  8.   

    不好意思,你有错误信息的,sorry.
      

  9.   

    我最近也在学pro*c,如还有疑问,可以加我QQ,在我个人资料里。