Oracle OCI programming and Borland C++ Builder
As you may know, Oracle dropped support for Borland Compilers in OCI
some time back. Well, it isn't all that hard to set up again.
I'm running 9i Release 2 Enterprise Edition on this PC at work and I am
using Borland C++ Builder 6 to 'play' with OCI programming - I intend to
build a set of components eventually, but I need to know what I'm doing
first !
I remember trying in the past to get OCI to work - but had no luck,
however, this time I decided not to give in so easily. I was depressed
to find that the old Borland folder under <oracle_hjome>\oci\lib has
gone - looks like only MS Visual C is supported - and we all know that
MS and Borland have a different OMF format and there is much wailing and
gnashing of teeth to get Borland talking to DLLs etc created with MSVC
and vice versa.
There are docs on Metalink which go into great detail about these
differences and how it can screw up your life to use a Borland compiler
- but I suspect these are now out of date.
Here is what you have to do instead (the following uses my paths -
adjust for your setup) :
Open a DOS window
cd e:\oracle\ora92\oci\lib
mkdir borland
cd borland
Assuming that the CBuilder bin directory is on your path .....
implib -a oci.lib <oracle_home>\bin\oci.dll
exit
That has created an import library to be added to any OCI projects you
want to create. The '-a' bit is required as it prepends an underscore to
the exported module names in the dll. This is what used to cause so many
problems with MS/Borland libraries and stuff in the past.
The rest is simple, run up C++ Builder and open one of the Oracle
samples - I used CDemo6 - you'll be asked to create a project to run it,
do so then save it as BOR_CDemo6.
Project | options and on the directories tab, add
<oracle_home>\oci\include to the includes path.
Then Project | add to project and add <oracle_home>\oci\borland\oci.lib
to the project.
Compile & run - et viola (as French musicians would
相关文档:
Sql中两个“-”表示注释的开始。
拼接运算符:”||”,注意:只有在所有的运算符为null时,拼接的结果是null。
比较运算符用于比较两个值或表达式,给出一个布尔型的结果 true,false,null.
比较运算符:
=
!= <> ^=
[not]in 包含
Any some 将一个值与列表中的每个值或者 ......
最近在使用过程中的发现连接数据库时好时坏,经常报TNS异常,在控制面板中在服务中将tns正常启动后,当连接数据库时发现tns又停止了。苦苦在网上搜寻了许多,发现网上铺天盖地的三种方法,我一一试了都没有作用。
后来无意中看到一位网友说他出现过相同的问题,是由于装了个vpn软件,这时的我神经特别敏 ......
Oracle的约束
* 如果某个约束只作用于单独的字段,即可以在字段级定义约束,也可以在表级定义约束,但如果某个约束作用于多个字段,
必须在表级定义约束
* 在定义约束时可以通过CONSTRAINT关键字为约束命名,如果没有指定,ORACLE将自动为约束建立默认的名称
定义primary key约束(单个字段)
create table ......
前几个项目自己没有写过接口,都是负责前台的控制。来到这个项目上,才开始自己写,我是6月中旬开始做这个项目的,现在11月份,现在在去看6月份写的package,简直有点想吐了。原因有以下几点:
1. 简洁,扼要的说明没有附加。
2. n多功能综合到一起,全部放到一个包里,而不是根据功能模块划分。
3. 没有例外控制。 ......
CREATE OR REPLACE VIEW ADMIN.TYPETREEVIEW
(ID, ITEMNO, ITEMNOSUB, GROUPID, MEMO,
TREE)
AS
/* 2007/01/23 16:51 XieShaoHua 递归查询 */
SELECT typetree.ID, typetree.itemno, typetree.itemnosub, typetree.groupid,
&n ......