Oracle数据库开发(二).Linux下配置使用ProC

2016-01-29 14:46 49 1 收藏

Oracle数据库开发(二).Linux下配置使用ProC,Oracle数据库开发(二).Linux下配置使用ProC

【 tulaoshi.com - Oracle教程 】

草木瓜

一、提要

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

    上文简单介绍了Windows下ProC配置开发,这次我们使用Linux平台再次配置Oracle ProC开发环境(RedHat Linux 9 + Oracle 92)。
    《ORACLE数据库开发(一).Windows下配置使用ProC》和《ORACLE数据库开发(二).Linux下配置使用ProC》这两篇文章的目的只是做一些基础介绍,至于Oracle ProC编译参数以及Linux下的ProC Makefile
相关内容,将再后续文章逐步引入。
    一言以弊之,先易后难。

二、数据库环境

    与Windows下十分类似,首先确认安装了组件,Oracle - Application Development - Pro C-C++ 。安装后会在$ORACLE_HOME/bin生成相应可执行文件,在$ORACLE_HOME/precomp/demo/proc下也会生成一些 makefile文件和示例。

三、示例文件

    main.pc
    ---------------------------------------------------------

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com)

  #include "sqlca.h"
  #include <stdio.h
  #include <string.h
  #include <stdlib.h
  
  void sql_error(char *msg)
  {
  printf("n%s %sn", msg,(char *)sqlca.sqlerrm.sqlerrmc);
  EXEC SQL ROLLBACK RELEASE;
  exit(0);
  }
  
  int main() {
  
  EXEC SQL INCLUDE sqlca;
  EXEC ORACLE OPTION (RELEASE_CURSOR = YES);
  EXEC SQL WHENEVER SQLERROR DO sql_error(" <ERROR ");
  
  EXEC SQL BEGIN DECLARE SECTION;
  VARCHAR oraCN[30];
  EXEC SQL END DECLARE SECTION;
  
  strcpy(oraCN.arr,"system/manager@linuxdb");
  oraCN.len = strlen(oraCN.arr);
  oraCN.arr[oraCN.len]='';
  
  EXEC SQL CONNECT :oraCN;
  printf("n [OK Connected!] ");
  
  return 0;
  
  } 

  代码其实是Windows的原版。
  
  
四、编译运行

    无需修改任何参数文件,即安装后直接创建main.pc,执行如下命令:
   
  $ proc parse=none iname=main.pc
  
  Pro*C/C++: Release 9.2.0.4.0 - Production on Thu Jun 7 14:17:05 2007
  
  Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
  
  System default option values taken from: /home/ora/ora9/oracle/precomp/admin/pcscfg.cfg
  
  $ gcc -g -o main main.c -I/home/ora/ora9/oracle/precomp/public -L/home/ora/ora9/oracle/lib -lclntsh
  
  $ ./main
  
   <ERROR  ORA-12541: TNS:no listener
   
   成功编译运行,这里也可以使用《ProC动态SQL示例(第1,2,3种方法)》一文中的示例,将//注释全部替换为空,即可编译。
    http://blog.csdn.net/liwei_cmg/archive/2006/05/29/759963.aspx
    不过会有告警提示:
  /tmp/ccC7E6qe.o(.text+0xea): In function `db_connect':
  /home/ora/develop/src/db.c:385: the `gets' function is dangerous and should not be used.
   
    这个是由于使用了gets函数所致,见gets的man手册:[next]
   
BUGS
       Never use gets().  Because it is impossible to tell without knowing the data in advance how many  characters  gets()  will  read,  and  because gets() will continue to store characters past the end of the buffer, it is extremely dangerous to use.  It has  been  used  to  bre

来源:http://www.tulaoshi.com/n/20160129/1494173.html

延伸阅读
本文从几大方面详细讲述了Oracle数据库的配置方案。 所有连接到Oracle的用户必须执行两个代码模块: 应用或Oracle工具:一数据库用户执行一数据库应用或一个Oracle工具,可向Oracle数据库发出SQL语句。 Oracle服务器程序:负责解释和处理应用中的SQL语句。 在多进程实例中,连接用户的代码可按下列三种方案之一配置: 1、对于每一个用...
 本文从几大方面具体讲述了Oracle数据库的配置方案。  所有连接到Oracle的用户必须执行两个代码模块: 应用或Oracle工具:一数据库用户执行一数据库应用或一个Oracle工具,可向Oracle数据库发出SQL语句。 Oracle服务器程序:负责解释和处理应用中的SQL语句。  在多进程实例中,连接用户的代码可按下列三种方案之一配置: &nb...
2)MySQL授权表运行机制 MySQL的访问控制分两个步骤: a)服务器检查是否允许该用户连接。 b)如果该用户有权连接,那么服务器还会检查它的每一个请求是否有足够的权限。比如:用户检索数据库中的一个表需要有这个数据库的select权限,用户删除数据库中的一个表需要有这个数据库的drop权限。 授权表的user, db,host表使...
mSQL(mini SQL)是一个单用户数据库管理系统,由于它的短小精悍,使其开发的应用系统特别受到互联网用户青睐。笔者曾经在Linux下开发过一个基于Web的管理系统,其中采用了mSQL数据库用于数据管理,系统在实际运行中效果良好。笔者经过总结,现将在Linux下mSQL数据库开发的方法详细介绍给大家。  首先,到站点www.hughes.com.au注...
标签: MySQL mysql数据库
 MySQL 版本:4.1 环境介绍:主库 192.168.0.205 从库 192.168.0.206 1、主库创建/etc/my.cnf,修改[mysqld]里边的键值增加 server-id=1 log-bin=binlog_name 2、主库增加用户,用于从库读取主库日志。 grant replication slave,reload,super on *.* to ’slave’@’192.168.0.206’ identified by ’123456’ 3、从库连接主库...

经验教程

885

收藏

14
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部