社区
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都沒用過。
高手指點。
先謝謝了!
...全文
599
29
打赏
收藏
純DOS下連接數據庫--急-在綫等
向高手求救 有沒有人在純DOS下用C寫過連接數據庫的程序 指點一下(連Oracle和SQL server都可以) 1)是否要安裝DOS下的客戶端(什麽版本從哪裏獲取) 2)如何配置 3)在C中如何引用,連接語句如何寫 4)sql語句如何執行。 以前只做過window下VB的開發 C和DOS都沒用過。 高手指點。 先謝謝了!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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)
计算机基础-
Dos
命令
本课程主要讲解软件测试基础-
dos
命令,主要内容有: 1.
dos
介绍 2.
dos
打开 3.
dos
基本使用 4.新建目录命令 5.打开目录命令 6.切换目录命令 7.新建文件命令 8.删除目录与文件命令 9.拷贝命令 10.剪切命令
数据库系统工程师考点笔记
本人在备战数据库系统工程师的考试,把刷历年真题碰到的知识点记录在这边。(目录是第四版教程)
一个小时学会 MySQL 数据库
随着移动互联网的结束与人工智能的到来大数据变成越来越重要,下一个成功者应该是拥有海量数据的,数据与数据库你应该知道。 一、数据库概要 数据库(Database)是存储与管理数据的软件系统,就像一个存入数据的...
JAVA 访问MySQL数据库(使用方法及测试)
最近我们的JAVA课程讲到数据库,老师一直强调搭建数据库环境(JDBC)的重要性,刚好我的电脑前段时间重装过,也可以趁着这个机会再来回顾一遍JDBC的搭建。 说明:本文使用的JDBC框架是基于JAVA SE 1.8 & MySQL &...
数据库工程师考点2023
ISO/OSI 网络体系结构 第 6 章 数据库技术基础 6.1 基础概念 6.1.1 数据库与数据库管理系统 6.1.2 数据库技术的发展 6.1.3 DBMS的功能和特点 6.1.4 数据库系统的体系结构 6.1.5 数据库系统的三级模式结构 6.2 数据...
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章