社区
C语言
帖子详情
純DOS下連接數據庫--急-在綫等
yqwd911
2006-06-02 11:09:33
向高手求救
有沒有人在純DOS下用C寫過連接數據庫的程序
指點一下(連Oracle和SQL server都可以)
1)是否要安裝DOS下的客戶端(什麽版本從哪裏獲取)
2)如何配置
3)在C中如何引用,連接語句如何寫
4)sql語句如何執行。
以前只做過window下VB的開發 C和DOS都沒用過。
高手指點。
先謝謝了!
...全文
628
29
打赏
收藏
純DOS下連接數據庫--急-在綫等
向高手求救 有沒有人在純DOS下用C寫過連接數據庫的程序 指點一下(連Oracle和SQL server都可以) 1)是否要安裝DOS下的客戶端(什麽版本從哪裏獲取) 2)如何配置 3)在C中如何引用,連接語句如何寫 4)sql語句如何執行。 以前只做過window下VB的開發 C和DOS都沒用過。 高手指點。 先謝謝了!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
29 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yqwd911
2006-06-21
打赏
举报
回复
問題還沒有解決,但是謝謝大家的熱心!
yqwd911
2006-06-16
打赏
举报
回复
不夠強,所以求大家幫忙
yqwd911
2006-06-13
打赏
举报
回复
怎麽寫中间层的服务有沒有例子??
yulinlang
2006-06-13
打赏
举报
回复
安装SQL Server的develop tools,没研究过里面有没有for dos的
yulinlang
2006-06-13
打赏
举报
回复
根本不许需要在DOS下装什么客户端,何况现在也没有。
你需要的能提供在DOS下访问Oracle的函数库,仅此而已。不过好像现在也没有,原来低版本的不知道是否提供。
实在不行只能自己写个中间层的服务,转换一下了。
yqwd911
2006-06-13
打赏
举报
回复
有人有更好的建議嗎?
hemiya
2006-06-13
打赏
举报
回复
如果够强,自己写code.hehe
HKSoft
2006-06-07
打赏
举报
回复
建议用Pro C/C++
yqwd911
2006-06-07
打赏
举报
回复
To 51365133(渊海)
如果是FOXbase,那麽要怎麽做呢?
yqwd911
2006-06-05
打赏
举报
回复
To 51365133(渊海)
謝謝你提供的資料。但是我的客戶端是純DOS。
安裝什麽Oracle客戶端?
怎麽設定?
你知道在純DOS下安裝的Oracle客戶端從哪裏可以獲取?
51365133
2006-06-05
打赏
举报
回复
建议楼主看下,我写的这个配置环境,按照上边的步骤,我是实现了.
Por*C/C++ --开始 - mac
pro*C/C++ --> 将源程序中的内嵌SQL转变为C/C++代码(预编译)
c/c++ --> 编译和链接C++代码
使用预编译器开发内嵌SQL程序的步骤
1·编写预编译源程序:.pc,在该预编译源程序中包含了内嵌SQL和PL/SQL;
2·预编译源程序,生成C/C++源文件:.c/.cpp,将内嵌的SQL和PL/SQL代码转变为对SQLLIB(Oracle运行库函数)的调用;
3·编译C/C++源文件,声称目标代码:.obj;
4·连接.obj和SQLLIB运行库,生成可执行文件:.exe
5·运行并调试.exe文件。
环境搭建
1·安装Oracle9i客户端Pro C-C++
注意查看是否已安装
2·安装VC++
先安装Oracle后,就可以在VC中省去设置一些东西
3·使用配置文件 pcscfg.cfg:
在 %oracle_home%precompadmin 下,用记事本打开,添加常用的预编译选项,比如:
parse=full ----要解析院文件的所有语法
include=f:oracleora92precomppublic
include=f:oracleora92ociinclude
include=d:VC98include
4·使用 procui 进行预编译
这一步放在 Pro*C/C++ 与 VC 环境集成时说
5·在 VC 中运行
在VC中使用Pro*C/C++预编译器
(如果先安装了Oracle再安装的VC,可以省去这一步)工具-选择-目录,选择 Executable files,添加: %oracel_home%bin
指定Pro*C/C++头文件的路径
工具-选择-目录,选择 Include files,添加:
%oracel_home%precomppublic --- Pro*C/C++头文件的路径
%oracel_home%ociinclude --- oci头文件所在路径
建立工程文件
·要建立 Win32 Console Application;
·然后在Source file里添加.PC和.C文件;
·然后在Source file里添加orasql9.lib,在%oracel_home%precomplib 中;
让VC自动预编译.pc文件(不用在pc环境下)
选中.pc文件,单击右键setting,命令中输入 proc $(InputDir)(InputName),输出中输入 $(InputDir)(InputName).c
把oracle的Pro C-C++添加到VC中
工具-定制-工具,空白处写上 Pro*C/C++,命令写:procui.exe,参数写:$(TargetName),初始化目录选项:$(WkspDir),然后就可以在工具菜单中看到了。
其他一些
---当编写支持C++的P+++C/C++源程序时,必须将预编译选项的CODE设置为CPP。这样在预编译以后,会生成和C++完全兼容的函数原形。
---内嵌SQL的续行符:
---注意分隔符,C/C++用‘’来分隔字符,用“”来分隔字符串;内嵌SQL用‘’分隔字符串,“”表示内容区分大小写,比如表名。
--------------------
---操作 SQL操作符 C操作符
非 NOT !
与 AND &&
或 OR ||
等于 = ==
51365133
2006-06-05
打赏
举报
回复
yqwd911(windy) ( ) 信誉:100 2006-6-2 15:59:38 得分: 0
先謝謝jixingzhong提供的資料
我研究一下。
順便問一下#include <sqlca.h> 這個Sqlca.h是C的標準lib嗎?
不是标准的,这是数据库中带的,
你安装Oracle后,会有一些头文件,你用PRO*C就可以直接的连接这些头文件,具体的写的方式和jixingzhong 提供的差不多.
#include "Zaoan.h"
int main(int argc, char* argv[])
{
// update zaoan progress
EXEC SQL update sslmg_salesdate
set sslmgsal_zaoanprog = 100
where sslmgsal_saldate = to_date(:szSaleDate,'yyyymmdd');
EXEC SQL update sslmg_salesdate
set sslmgsal_zaoancd = rpad(substr(sslmgsal_zaoancd, 1, 7), 8, '0') ;
EXEC SQL COMMIT WORK RELEASE;
sprintf(g_szEsmlogMsg, PROGRAM_END_MSG, "Zaoan");
comOutputEsmlog(szLogFile,
"Zaoan",
ESMLOG_INFO,
PROGRAM_END_ID,
g_szEsmlogMsg);
return(GMS_RETURN_NRML);
}
int connect_db()
{
// Config of database
strcpy((char *)username.arr, sInitVariable.szDBUser);
strcpy((char *)password.arr, sInitVariable.szDBPwd);
strcpy((char *)database.arr, sInitVariable.szDBName);
username.len = (unsigned short)strlen((char *)username.arr);
password.len = (unsigned short)strlen((char *)password.arr);
database.len = (unsigned short)strlen((char *)database.arr);
// Connect to DB
EXEC SQL CONNECT :username IDENTIFIED BY :password USING :database;
return (0);
}
这是调用Oracle的例子.你看下吧.
yqwd911
2006-06-05
打赏
举报
回复
問題還沒有解決,高手們繼續幫忙呀
51365133
2006-06-05
打赏
举报
回复
我以前知道一个系统是纯DOS的她们好像用的是FOXBASE数据库.
yqwd911
2006-06-03
打赏
举报
回复
To jixingzhong
能不能在指点一下
happytang
2006-06-02
打赏
举报
回复
肯定要装客户端的
除非有低版本的。。。
yqwd911
2006-06-02
打赏
举报
回复
To jixingzhong
這個SAMPLE是什麽數據庫?
看你寫的好像意思是在sqlca中配置了如何連接SAMPLE,是這個意思嗎?
那麽是怎麽配置連接到SAMPLE的?
robin_yao
2006-06-02
打赏
举报
回复
不知道DB-Library行不行
yqwd911
2006-06-02
打赏
举报
回复
先謝謝jixingzhong提供的資料
我研究一下。
順便問一下#include <sqlca.h> 這個Sqlca.h是C的標準lib嗎?
jixingzhong
2006-06-02
打赏
举报
回复
嵌入SQL,仅供楼主参考 ~
连接到SAMPLE数据库,查询LASTNAME为JOHNSON的FIRSTNAME信息。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "util.h"
#include <sqlca.h>
EXEC SQL INCLUDE SQLCA; (1)
main()
{
EXEC SQL BEGIN DECLARE SECTION; (2)
char firstname[13];
char userid[9];
char passwd[19];
EXEC SQL END DECLARE SECTION;
EXEC SQL CONNECT TO sample; (3)
EXEC SQL SELECT FIRSTNME INTO :firstname (4)
FROM employee
WHERE LASTNAME = 'JOHNSON';(4)
printf( "First name = %s\n", firstname );
EXEC SQL CONNECT RESET; (5)
return 0;
}
上面是一个简单的静态嵌入SQL语句的应用程序。它包括了嵌入SQL的主要部分:
(1)中的include SQLCA语句定义并描述了SQLCA的结构。SQLCA用于应用程序和数据库之间的通讯,其中的SQLCODE返回SQL语句执行后的结果状态。
(2)在BEGIN DECLARE SECTION和END DECLARE SECTION之间定义了宿主变量。宿主变量可被SQL语句引用,也可以被C语言语句引用。它用于将程序中的数据通过SQL语句传给数据库管理器,或从数据库管理器接收查询的结果。在SQL语句中,主变量前均有“:”标志以示区别。
(3)在每次访问数据库之前必须做CONNECT操作,以连接到某一个数据库上。这时,应该保证数据库实例已经启动。
(4)是一条选择语句。它将表employee中的LASTNAME为“JOHNSON”的行数据的FIRSTNAME查出,并将它放在firstname变量中。该语句返回一个结果。可以通过游标返回多个结果。当然,也可以包含update、insert和delete语句。
(5)最后断开数据库的连接。
从上例看出,每条嵌入式SQL语句都用EXEC SQL开始,表明它是一条SQL语句。这也是告诉预编译器在EXEC SQL和“;”之间是嵌入SQL语句。如果一条嵌入式SQL语句占用多行,在C程序中可以用续行符“\”。
加载更多回复(9)
数据库系统工程师考点笔记
本人在备战数据库系统工程师的考试,把刷历年真题碰到的知识点记录在这边。(目录是第四版教程)
MySQL 数据库
MySQL 数据库 本章内容 关系型数据库基础 安装MySQL 管理数据库和表 用户和权限管理 函数,存储过程,触发器和事件 MySQL架构 存储引擎 服务器选项,系统和状态变量 优化查询和索引管理 锁和事务管理 日志管理 备份还原 MySQL集群 压力测试 1 数据库原理 1.1 数据的分类 结构化的数据:即有固定格式和有限长度的数据。例如填的表格就是结构化的数据,国籍:中华人 民共和国,民族...
linux备份mysql部分表数据,mysqldump导出表的部分数据库
MySQL导入导出方法总结使用into outfile 和 load data infile导入导出数据这种方法的好处是,导出的数据可以自己规定格式,并且导出的是纯数据,不存在建表信息,你可以直接导入另外一个同数据库的不同表中,相对于mysqldump比较灵活机动。下面的mysql命令是把select的mytab...文章技术小甜2017-11-081267浏览量mysqldump命令1、导出整个...
JAVA 访问MySQL数据库(使用方法及测试)
最近我们的JAVA课程讲到数据库,老师一直强调搭建数据库环境(JDBC)的重要性,刚好我的电脑前段时间重装过,也可以趁着这个机会再来回顾一遍JDBC的搭建。
数据库工程师考点2023
目录 第1章 计算机系统知识 1.1 计算机硬件基础知识 1 1.1.1 中央处理单元 1 1.1.2 存储器 4 1.1.3 总线 7 1.1.4 输入输出控制 10 1.2 计算机体系结构 14 1.2.1 CISC和RISC…… 15 1.2.2 流水线技术 16 1.2.3 阵列处理机、并行处理机和多处理机 19 1.3 存储系统 20 1.3.1 高速缓存 21 1.3.2 虚拟存储器 24 1.3.3 相联存储器 25 1.3.4 磁盘阵列技术 25 1.3.5 存储域网络 26 1.4 安全性
C语言
70,022
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章