报错如下:
1>------ 已启动生成: 项目: ProcTest, 配置: Debug Win32 ------
1>正在链接...
1>MSVCRTD.lib(crtexe.obj) : error LNK2019: 无法解析的外部符号 _main,该符号在函数 ___tmainCRTStartup 中被引用
1>C:\Users\PCW\Documents\Visual Studio 2008\Projects\ProcTest\Debug\ProcTest.exe : fatal error LNK1120: 1 个无法解析的外部命令
1>生成日志保存在“file://c:\Users\PCW\Documents\Visual Studio 2008\Projects\ProcTest\ProcTest\Debug\BuildLog.htm”
1>ProcTest - 2 个错误,0 个警告
========== 生成: 成功 0 个,失败 1 个,最新 0 个,跳过 0 个 ==========
Oracle 10g Proc+VS2008开发环境搭建严格按照如下所述的(其中编译生成C源文件):
http://blog.csdn.net/ishow99/article/details/4922148
.pc源代码如下:
#include <stdio.h>
/* 说明段,说明SQL变量 */
EXEC SQL BEGIN DECLARE SECTION;
  VARCHAR username[20];
VARCHAR password[20];
EXEC SQL END DECLARE SECTION;/* SQL通讯区说明 */
EXEC SQL INCLUDE sqlca;/* C函数说明,错误处理 */
void sqlerror();
/* 程序体 */
main()
{
  /************ 内部说明部 ***********/    /* 内部说明段,说明局部SQL变量 */
  EXEC SQL BEGIN DECLARE SECTION;
int emp_number;
VARCHAR emp_name[15];
float salary;
float commission;
  EXEC SQL END DECLARE SECTION;
  /* C变量说明 */
  int total_number;  /* 登录到ORACLE*/   
  strcpy(username.arr, "scott"); /* 用户名 */
  username.len = strlen(username);
  strcpy(password.arr, "tiger"); /* 口令 */
  password.len = strlen(password.arr);  EXEC SQL WHENEVER SQLERROR DO sqlerror();
  /* 错误处理说明语句 */
   
  EXEC SQL CONNECT :username IDENTIFIED BY : password;
  /* 连接到oracle */  printf("\nConnect to ORACLE as user:%s\n",username.arr);  /* 循环查询职员信息 */
  total_number = 0;  while(1)
  {
  emp_number = 0;
printf("\nEnter employee number(0 to quit):");
scanf("%d", &emp_number);
if (emp_number == 0)  
break;/* 查询语句 */
EXEC SQL WHENEVER NOT FOUND GOTO notfound;
EXEC SQL SELECT ENAME, SAL, COMM
  INTO :emp_name, :salary, :commission
FROM EMP
WHERE EMPNO = :emp_number;/* 输出查询结果 */
printf("\n\nEmployee\tSalary\tCommission\n");
printf("------------\t-----------\t---------------\n");
emp_name.arr[emp_name.len] = '\0';
printf("%-8s\t%6.2f\t%6.2f\n",emp_name.arr, salary,commission);
total_number = total_number+1;
continue;
notfound:
printf("\nNot a valid employee number - try again.\n");
  }  printf("\n\nTotal number queried was:%d\n",total_number);
  printf("\n\nHave a good day.\n");  /* 结束处理,退出ORACLE系统 */
  EXEC SQL COMMIT WORK RELEASE;
    
  exit(0);
}/* 错误处理 */
void sqlerror()
{
  EXEC SQL WHENEVER SQLERROR CONTINUE;
  printf("\nORACLE error detected:\n");  /* 打印错误文本 */
  printf("\n%.70s\n",sqlca.sqlerrm.sqlerrmc);  /* 回滚事务 */
  EXEC SQL ROLLBACK RELEASE;
  exit(1);
}

解决方案 »

  1.   

    环境搭建改为按http://wenku.baidu.com/view/71798d4df7ec4afe04a1dfba.html的来,然后后面的proc $(InputDir)$(InputName),与$(InputDir)$(InputName).c直接改为proc .pc文件名和文件名.c,如proc test和test.c 
      

  2.   

    环境搭建改为按http://wenku.baidu.com/view/71798d4df7ec4afe04a1dfba.html的来,然后后面的proc $(InputDir)$(InputName),与$(InputDir)$(InputName).c直接改为proc .pc文件名和文件名.c,如proc test和test.c