zoukankan      html  css  js  c++  java
  • PROC简单的用例--VC连接ORACLE

    操作系统:windows 7

    数据库版本号:oracle 10g

    VS版本号:VS2010

    前言:连接ORACLE有许多方法,这里只PROC外壳,说明如何连接oracle,有事吗,希望你告诉我指出,一起学习。

    一、安装oracle 10g相应的client版本号。

      注意事项:做好客户配置,以本机为例:D:oracleproduct10.2.0client_2NETWORKADMIN nsnames.ora文件为

    # tnsnames.ora Network Configuration File: d:oracleproduct10.2.0client_2 etworkadmin nsnames.ora
    # Generated by Oracle configuration tools.

    DB_DEMO =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.8.222)(PORT = 1521))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = db_demo)
        )
      )

    host:ORACLE服务端IP地址;PORT:ORACLE服务端port号,默觉得1521;SERVICE_NAME:数据库名称。

    二、建立oracle.pc文件,文件内容为:

    // oracle.cpp : Defines the entry point for the console application.
    //
    
    #include <stdio.h>
    #include <stdlib.h>
    
    #include <process.h> 
    #include <errno.h> 
    
    //EXEC SQL INCLUDE SQLCA;
    #include <sqlca.h>
    
    int main(int argc, char* argv[])
    {
    	EXEC SQL BEGIN DECLARE SECTION;
    	VARCHAR myusername[20], mypassword[20], myserver[20];
    	EXEC SQL END DECLARE SECTION;
    
    	printf( "
    请输入用户名:" );
    	gets( (char*)myusername.arr );
    	myusername.len = (unsigned short) strlen( (char*)myusername.arr );
    	printf( "
    请输入口令:" );
    	gets( (char*)mypassword.arr );
    	mypassword.len = (unsigned short) strlen( (char*)mypassword.arr );
    	printf("
    请输入服务器名:");
    	gets( (char*)myserver.arr );
    	myserver.len = (unsigned short) strlen( (char*)myserver.arr );
    	EXEC SQL CONNECT :myusername IDENTIFIED BY :mypassword USING :myserver;
    	
    	if(sqlca.sqlcode < 0 )
    		printf (" 
    用户%s成功地连接到了服务器%s上。
    " , myusername.arr, myserver.arr); 
    	else
    		printf("
    %ld,%s
    ", sqlca.sqlcode,(char *)sqlca.sqlerrm.sqlerrmc);
    	return 0;
    }
    
    

    三、找到ORACLE安装文件夹下PROC.exe文件。本机文件夹为:D:oracleproduct10.2.0client_2BIN,将oracle.pc文件复制到些文件夹下,执行cmd命令行,cd到此文件夹下,执行proc.exe oracle.pc oracle.cpp命令,会在当前文件夹下生成oracle.cpp文件。

    四、启动VS2010,建立空控件台的oracle项目。下面要注意了,做好VS项目配置。将oracle.cpp的拷贝至oracle文件夹下,加入进project。

    然后做下图的配置:

    1、数据库include头文件路径配置

    2、数据库LIB文件文件夹配置

    3、数据库依赖LIB文件配置

    五、删除之前自己主动生成的oracle.cpp文件,将oracle.cpp加入进oracle项目,编译链接。可能会出现下面几个错误:

    1、提示未include "stdafx.h"。解决方式:在oracle.cpp開始部位加入#include "stdafx.h"

    2、提示 error LNK2001: unresolved external symbol "void __cdecl sqlcxt(void * *,unsigned int *,struct sqlexd *,struct sqlcxp const *)" (?sqlcxt@@YAXPAPAXPAIPAUsqlexd@@PBUsqlcxp@@@Z)错误。解决方式:extern  void sqlcxt (void **, unsigned int *。struct sqlexd *, const struct sqlcxp *);在extern后加上"C"编译就可以

    3、其他一些问题。就细致查看配置的include、lib路径是否正确。以及lib文件名称是否正确。

    六、执行生成的oracle.exe。截图例如以下:



    
  • 相关阅读:
    Dedecms(织梦)文章内容页和图片集内容页,调用缩略图的方法
    如何修改织梦dedecms文章标题的最大长度
    织梦自定义表单后台管理增加全选功能,批量删除垃圾留言信息
    自定义表单SQL命令行批量删除垃圾留言
    织梦后台卡死的原因分析及开关功能解决办法
    织梦网站迁移的几种方法
    Dedecms(织梦)文章内容页和图片集内容页,调用缩略图的方法
    织梦CMS被挂马特征汇总
    DedeCMS模板中用彩色tag做彩色关键词
    HDU6038
  • 原文地址:https://www.cnblogs.com/hrhguanli/p/5045546.html
Copyright © 2011-2022 走看看