重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
一般C语言连接oracle数据库通过使用oracle提供的OCI接口和PROC编程接口两种方式。
创新互联建站专注于日喀则企业网站建设,响应式网站,商城网站开发。日喀则网站建设公司,为日喀则等地区提供建站服务。全流程按需设计网站,专业设计,全程项目跟踪,创新互联建站专业和态度为您提供的服务
OCI方式纯粹是一些函数接口。
PROC是oracle提供的一种C与ORACLE
SQL的混合编程。程序(以.pc为后缀)编好之后,使用oracle提供的proc预编译程序,将pc文件编译成c文件(这一过程,相当于将SQL转换为OCI的接口),然后再使用c语言编译器生成可以执行文件。
OCI方式不容易入门,它拥有大量的接口函数,要很快熟悉它,非常难。但OCI方式的编程效率很高。
porc方式简单易用。可用于对性能要求不太高的项目。
一、MySoft.Data说明
1、简介
MySoft是一套开源小型框架,包含ORM、Ajax、MVC、Net、Web等。MySoft.Data就是其中的ORM框架。支持多种不同数据库,如SqlServer、Oracle、MySql、SQLite、Firebird、Access等。MySoft.Data是一种轻量级的能替代SQL语句的易用的ORM框架
二、MySoft.Data使用步骤说明
a) 安装SetupEntityVsPlugin
双击SetupEntityVsPlugin把插件安装到相应的目录。如果使用的是VS2005需要修改SetupEntityVsPlugin.exe文件,把配置项AddInVersionName和AddInVersionNo设置为正确的数据
b) 生成实体文件MySoft.Tools.EntityDesign
使用MySoft.Tools.EntityDesign生成实体文件.
1、 选择使用的数据库:SQLServer、SQLServer2005、、、
2、 设置正确的数据库链接字符串
3、 点击“连接服务器”即把数据库里的表和视图显示在左边的框里
4、 选择需要生成实体的表或视图
5、 点击“选择文件夹”来选择要存储实体的路径
6、 点击“生成实体接口”来生成实体文件,把接口类显示在文本框内
7、 点击“生成多个文件”来生成真正的实体文件
说明:以上步骤是生成实体接口的步骤,在解决方案里新建一个项目文件把该生成的实体文件添加到项目里。该项目文件最好只存放实体接口类,对实体的说明性注释都在接口文件里操作。
c) EntityDesignConifg.xml配置文件
1、 把EntityDesignConifg.xml文件添加到实体接口类的项目里
2、 根据需要修改配置项
3、 CompileMode:表示编译的模式
4、 InputDllName:表示输入实体接口类的DLL文件名,即该项目生成的Dll的文件名
5、 OutputLanguage:表示输出实体类的语言,默认为C#
6、 OutputNamespace:表示输出实体类的命名空间
7、 EntityCodePath:表示输出实体类文件的路径,即把由实体接口类生成的实体类生成完存放的路径。
d) 生成实体文件
以上步骤做完后,编译实体接口项目,即生成了实体类。把生成的实体类添加到相应的项目里即可
e) 编写代码
在相应的项目里编写代码,可以直接引用生成的实体。注意命名空间。
三、MySoft.Data使用代码简单说明
a) DbSession
DbSession是MySoft.Data的数据库操作会话对象,是所有数据库操作的入口。
实例化:
1、指定DbSession操作的数据库
DbSession dbSession = new DbSession(new MySoft.Data.SqlServer9.SqlServer9Provider("数据库连接字符串"));
2、使DbSession操作默认的数据库
DbSession dbSession = new DbSession(MySoft.Data.ProviderFactory.Default);
3、From 查询功能
dbSession.From实体类名()
1、 Count:返回记录的条数
2、 Distinct:返回唯一的数据
3、 GroupBy:分组
4、 Having:分组条件
5、 OrderBy:排序
6、 Select:选择某些字段
7、 Where:添加查询条件
8、 ToReader:返回ISourceReader
9、 ToTable:返回ISourceTable
10、 ToList:返回ISourceList
11、 ToList:返回指定类型的ISourceList
4、Delete 删除功能
dbSession.Delete实体类名(new WhereClip("条件"))
5、Update 更新功能
dbSession.Update实体类名(字段参数组,值参数组,new WhereClip("条件"))
6、Save 插入功能
dbSession.Save实体类名(实体实例)
7、Insert 插入功能
dbSession.Insert实体类名(字段参数组,值参数组)
8、Exists 检查是否存在功能
dbSession.Exists实体类名(new WhereClip("条件"))
9、Single 得到数据功能
dbSession.Single实体类名(new WhereClip("条件"))
10、Count 统计条数功能
dbSession.Count实体类名(new WhereClip("条件"))
11、Max 统计最大功能
dbSession.Max实体类名(实体字段, new WhereClip("条件"))
12、Min统计最小功能
dbSession.Min实体类名(实体字段, new WhereClip("条件"))
13、AVG 统计平均功能
dbSession. AVG 实体类名(实体字段, new WhereClip("条件"))
14、Sum 统计总合功能
dbSession.Min实体类名(实体字段, new WhereClip("条件"))
b) DbBatch
批量执行操作
DbBatch batch = dbSession.BeginBatch();
1、 batch.DeleteStockConfig 做删除操作
2、 batch.InsertStockConfig 做插入操作
3、 batch.UpdateStockConfig 做更新操作
4、 batch.SaveStockConfig 做插入操作
5、 batch.Process() 真正的执行操作
说明:该操作一个批量只用使用相同一操作,Delete,Insert,Update,Save只是标识操作,只有执行了Process才是真正的操作了
c) DbHelper
执行DB帮忙操作
DbHelper helper = new DbHelper("连接字符串", ProviderFactory.Default);
d) DbTrans
事务
DbTrans tran = dbSession.BeginTrans();
其它操作和VS自带事务操作一样,只是操作数据用tran来操作.
e) ProviderFactory
数据库提供者工厂类
ProviderFactory.Default
ProviderFactory. CreateDbProvider
ORACLE调用接口(Oracle Call Interface简称OCI)提供了一组可对ORACLE数据库进行存取的接口子例程(函数),通过在第三代程序设计语言(如C语言)中进行调用可达到存取ORACLE数据库的目的。
在普通的情况下,用户可以通过SQL和PL/SQL来访问数据库中的数据。ORACLE数据库除了提供SQL和PL/SQL来访问数据库外,还提供了一个第三代程序设计语言的接口,用户可以通过C、COBOL、FORTRAN等第三代语言来编程访问数据库。OCI就是为了实现高级语言访问数据库而提供的接口。OCI允许开发者在程序里使用SQL和PL/SQL来访问数据库。开发者可以使用第三代语言来编写程序,而使用OCI来访问数据库。
连接步骤就是先配置你本地ORACLE和服务器之间的连接,这个和PB无关,首先要保证你的ORACLE客户端和服务器是连接成功的。这个配置成功以后再配置PB,所以这个是很主要的一步。主要是配置本地NET服务名。即ORACLE有个目录中的TNSNAMES.ORA文件。
然后开始配置PB,打开DB画板,在菜单tools下的Database Painter
选择下边提供的接口中对应你ORACLE版本的一个,然后点右键,选New Profile,打开配置页。
配置页打开后,选择其中的connection那一页,打开默认就是这个页。
profile name是你配置在本地的名字,所以这个你可以随便取,只要自己通过名字知道是哪个库就好。 server这一项,需要按照你配置net服务名的时候配置的服务名填写,必须是你配置的服务名。logid和password不用说了,数据库登录用户和密码。connect as默认就可以。
然后选preview这一页,点test connection测试一下,看看,如果提示成功没问题,配置结束。PB配置完成了。如果失败,你可以试试选择system那一页,把powerbuilder catalog table owner:这一项后边的值(默认是SYSTEM)改成你在第一页配置的logid的值试试。
基本这几步结束后,就能配置成功了。