/* Result Sets Interface */
#ifndef SQL_CRSR
# define SQL_CRSR
struct sql_cursor
{
unsigned int curocn;
void *ptr1;
void *ptr2;
unsigned int magic;
};
typedef struct sql_cursor sql_cursor;
typedef struct sql_cursor SQL_CURSOR;
#endif /* SQL_CRSR */
/* Thread Safety */
typedef void * sql_context;
typedef void * SQL_CONTEXT;
/* Object support */
struct sqltvn
{
unsigned char *tvnvsn;
unsigned short tvnvsnl;
unsigned char *tvnnm;
unsigned short tvnnml;
unsigned char *tvnsnm;
unsigned short tvnsnml;
};
typedef struct sqltvn sqltvn;
struct sqladts
{
unsigned int adtvsn;
unsigned short adtmode;
unsigned short adtnum;
sqltvn adttvn[1];
};
typedef struct sqladts sqladts;
static struct sqladts sqladt = {
1,1,0,
};
/* Binding to PL/SQL Records */
struct sqltdss
{
unsigned int tdsvsn;
unsigned short tdsnum;
unsigned char *tdsval[1];
};
typedef struct sqltdss sqltdss;
static struct sqltdss sqltds =
{
1,
0,
};
/* File name & Package Name */
struct sqlcxp
{
unsigned short fillen;
char filnam[6];
};
static const struct sqlcxp sqlfpn =
{
5,
"db.pc"
};
static unsigned int sqlctx = 2027;
static struct sqlexd {
unsigned int sqlvsn;
unsigned int arrsiz;
unsigned int iters;
unsigned int offset;
unsigned short selerr;
unsigned short sqlety;
unsigned int occurs;
const short *cud;
unsigned char *sqlest;
const char *stmt;
sqladts *sqladtp;
sqltdss *sqltdsp;
void **sqphsv;
unsigned int *sqphsl;
int *sqphss;
void **sqpind;
int *sqpins;
unsigned int *sqparm;
unsigned int **sqparc;
unsigned short *sqpadto;
unsigned short *sqptdso;
unsigned int sqlcmax;
unsigned int sqlcmin;
unsigned int sqlcincr;
unsigned int sqlctimeout;
unsigned int sqlcnowait;
int sqfoff;
unsigned int sqcmod;
unsigned int sqfmod;
void *sqhstv[7];
unsigned int sqhstl[7];
int sqhsts[7];
void *sqindv[7];
int sqinds[7];
unsigned int sqharm[7];
unsigned int *sqharc[7];
unsigned short sqadto[7];
unsigned short sqtdso[7];
} sqlstm = {12,7};
// Prototypes
extern "C" {
void sqlcxt (void **, unsigned int *,
struct sqlexd *, const struct sqlcxp *);
void sqlcx2t(void **, unsigned int *,
struct sqlexd *, const struct sqlcxp *);
void sqlbuft(void **, char *);
void sqlgs2t(void **, char *);
void sqlorat(void **, unsigned int *, void *);
}
// Forms Interface
static const int IAPSUCC = 0;
static const int IAPFAIL = 1403;
static const int IAPFTL = 535;
extern "C" { void sqliem(char *, int *); }
typedef struct { unsigned short len; unsigned char arr[1]; } VARCHAR;
typedef struct { unsigned short len; unsigned char arr[1]; } varchar;
/* cud (compilation unit data) array */
static const short sqlcud0[] =
{12,4130,852,0,0,
5,0,0,1,0,0,27,52,0,0,4,4,0,1,0,1,5,0,0,1,5,0,0,1,5,0,0,1,10,0,0,
36,0,0,2,0,0,30,71,0,0,0,0,0,1,0,
51,0,0,3,101,0,6,100,0,0,6,6,0,1,0,1,5,0,0,1,5,0,0,1,5,0,0,1,4,0,0,1,5,0,0,2,3,
0,0,
90,0,0,4,0,0,29,107,0,0,0,0,0,1,0,
105,0,0,5,254,0,6,140,0,0,5,5,0,1,0,1,3,0,0,3,4,0,0,1,4,0,0,1,3,0,0,1,5,0,0,
140,0,0,6,0,0,29,153,0,0,0,0,0,1,0,
155,0,0,7,253,0,6,189,0,0,6,6,0,1,0,1,3,0,0,3,4,0,0,1,5,0,0,1,4,0,0,1,3,0,0,1,
5,0,0,
194,0,0,8,0,0,29,202,0,0,0,0,0,1,0,
209,0,0,9,240,0,6,235,0,0,5,5,0,1,0,1,3,0,0,3,4,0,0,1,5,0,0,1,3,0,0,1,5,0,0,
244,0,0,10,0,0,29,248,0,0,0,0,0,1,0,
259,0,0,11,279,0,6,287,0,0,7,7,0,1,0,1,3,0,0,3,4,0,0,1,5,0,0,1,4,0,0,1,3,0,0,1,
3,0,0,1,5,0,0,
302,0,0,12,0,0,29,300,0,0,0,0,0,1,0,
317,0,0,13,256,0,6,336,0,0,6,6,0,1,0,1,3,0,0,3,4,0,0,1,5,0,0,1,5,0,0,1,3,0,0,1,
5,0,0,
356,0,0,14,0,0,29,349,0,0,0,0,0,1,0,
371,0,0,15,245,0,6,385,0,0,6,6,0,1,0,1,3,0,0,3,4,0,0,1,5,0,0,1,4,0,0,1,3,0,0,1,
5,0,0,
410,0,0,16,0,0,29,398,0,0,0,0,0,1,0,
425,0,0,17,80,0,6,433,0,0,5,5,0,1,0,1,3,0,0,1,5,0,0,1,5,0,0,2,5,0,0,2,3,0,0,
460,0,0,18,0,0,29,440,0,0,0,0,0,1,0,
475,0,0,19,35,0,6,464,0,0,1,1,0,1,0,1,3,0,0,
494,0,0,20,0,0,29,470,0,0,0,0,0,1,0,
509,0,0,21,0,0,17,514,0,0,1,1,0,1,0,1,5,0,0,
528,0,0,21,0,0,45,516,0,0,0,0,0,1,0,
543,0,0,21,0,0,13,522,0,0,7,0,0,1,0,2,3,0,0,2,5,0,0,2,3,0,0,2,3,0,0,2,4,0,0,2,
4,0,0,2,5,0,0,
586,0,0,21,0,0,15,540,0,0,0,0,0,1,0,
};
#include <stdio.h>
#include <string.h>
#include <sqlca.h>
#include "db.h"
#include <iostream>
using namespace std;
//生成日志
int elog(char* path,char* msg)
{
FILE* fp;
char* filepath = (path ? path : "errlog.log");
fp = fopen(filepath,"a");
if (fp == NULL)
return 1;
fputs(msg,fp);
fputs("\n",fp);
fclose(fp);
return 0;
}
#define makelog(path, msg) \
do\
{\
char format_msg[1024]={0};\
sprintf(format_msg,"[%s %s:%d] %s",__TIME__,__FILE__,__LINE__,msg);\
elog(path,format_msg);\
}while(0)
/************************************************************************/
/* 功能:连接数据库
参数: user:用户名
pass:密码
db:数据库
返回值: 是否成功 */
/************************************************************************/
int db_connect(char* user,char* pass,char* db)
{
/* EXEC SQL BEGIN DECLARE SECTION; */
char sql_user[20];
char sql_pass[20];
char sql_db[20];
/* EXEC SQL END DECLARE SECTION; */
strcpy(sql_user,user);
strcpy(sql_pass,pass);
strcpy(sql_db,db);
/* EXEC SQL WHENEVER SQLERROR goto error; */
/* EXEC SQL CONNECT :sql_user IDENTIFIED BY :sql_pass USING :sql_db; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 12;
sqlstm.arrsiz = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int )10;
sqlstm.offset = (unsigned int )5;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlstm.sqhstv[0] = ( void *)sql_user;
sqlstm.sqhstl[0] = (unsigned int )20;
sqlstm.sqhsts[0] = ( int )20;
sqlstm.sqindv[0] = ( void *)0;
sqlstm.sqinds[0] = ( int )0;
sqlstm.sqharm[0] = (unsigned int )0;
sqlstm.sqadto[0] = (unsigned short )0;
sqlstm.sqtdso[0] = (unsigned short )0;
sqlstm.sqhstv[1] = ( void *)sql_pass;
sqlstm.sqhstl[1] = (unsigned int )20;
sqlstm.sqhsts[1] = ( int )20;
sqlstm.sqindv[1] = ( void *)0;
sqlstm.sqinds[1] = ( int )0;
sqlstm.sqharm[1] = (unsigned int )0;
sqlstm.sqadto[1] = (unsigned short )0;
sqlstm.sqtdso[1] = (unsigned short )0;
sqlstm.sqhstv[2] = ( void *)sql_db;
sqlstm.sqhstl[2] = (unsigned int )20;
sqlstm.sqhsts[2] = ( int )20;
sqlstm.sqindv[2] = ( void *)0;
sqlstm.sqinds[2] = ( int )0;
sqlstm.sqharm[2] = (unsigned int )0;
sqlstm.sqadto[2] = (unsigned short )0;
sqlstm.sqtdso[2] = (unsigned short )0;
sqlstm.sqphsv = sqlstm.sqhstv;
sqlstm.sqphsl = sqlstm.sqhstl;
sqlstm.sqphss = sqlstm.sqhsts;
sqlstm.sqpind = sqlstm.sqindv;
sqlstm.sqpins = sqlstm.sqinds;
sqlstm.sqparm = sqlstm.sqharm;
sqlstm.sqparc = sqlstm.sqharc;
sqlstm.sqpadto = sqlstm.sqadto;
sqlstm.sqptdso = sqlstm.sqtdso;
sqlstm.sqlcmax = (unsigned int )100;
sqlstm.sqlcmin = (unsigned int )2;
sqlstm.sqlcincr = (unsigned int )1;
sqlstm.sqlctimeout = (unsigned int )0;
sqlstm.sqlcnowait = (unsigned int )0;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) goto error;
}
makelog("debug.log","db_connect succ");
return 0;
error:
makelog("debug.log","db_connect failed");
makelog("debug.log",sqlca.sqlerrm.sqlerrmc);
/* EXEC SQL WHENEVER SQLERROR CONTINUE;
没有合适的资源?快使用搜索试试~ 我知道了~
基于WINDOWS控制台的程序——银行活期储蓄系统
共126个文件
h:35个
cpp:28个
bat:12个
5星 · 超过95%的资源 需积分: 11 29 下载量 131 浏览量
2010-05-07
15:50:46
上传
评论
收藏 1.21MB RAR 举报
温馨提示
基于windows控制台的程序,包括客户端和服务端,是实训项目,主要练习C++语法。数据库用的ORACLE。
资源推荐
资源详情
资源评论
收起资源包目录
基于WINDOWS控制台的程序——银行活期储蓄系统 (126个子文件)
create_all_object.bat 239B
create_tablespace.bat 111B
create.bat 101B
clear.bat 96B
create_procedure.bat 96B
create_user.bat 91B
create_trigger.bat 88B
init_data.bat 87B
create_table.bat 80B
oracle服务启动.bat 67B
oracle服务关闭.bat 65B
oracle.bat 59B
oracle.cfg 74B
oraca.cob 5KB
oraca5.cob 5KB
sqlda5.cob 3KB
sqlda.cob 3KB
bndsel.cob 3KB
sqlca5.cob 2KB
sqlca.cob 2KB
db.cpp 55KB
FormQueryNote.cpp 15KB
FormQueryNodeAllUser.cpp 14KB
Check.cpp 13KB
Form.cpp 11KB
FormTransfer.cpp 10KB
FormOpenAccount.cpp 10KB
FormWithdraw.cpp 9KB
FormChangePwd.cpp 9KB
Input.cpp 9KB
FormDestroyAccount.cpp 9KB
Tools.cpp 9KB
FormQuery.cpp 8KB
MyDes.cpp 8KB
FormSaving.cpp 8KB
MySocket.cpp 8KB
MySocket.cpp 8KB
ThreadOperation.cpp 7KB
FormLogin.cpp 6KB
FormMain.cpp 5KB
DateTime.cpp 5KB
MessageBox.cpp 4KB
main.cpp 2KB
Staffer.cpp 2KB
Thread.cpp 1KB
ThreadManage.cpp 1KB
main.cpp 1KB
IniInfo.cpp 771B
用户操作手册.doc 300KB
程序建模文档.doc 214KB
银行活期储蓄项目手册(C++).doc 175KB
Client.dsp 7KB
Server.dsp 5KB
Client.dsw 537B
Server.dsw 537B
Client.exe 164KB
Server.exe 128KB
oraca.for 6KB
oraca.h 6KB
sqlkpr.h 6KB
sqlapr.h 6KB
sqlcpr.h 5KB
sql2oci.h 5KB
db.h 4KB
sqlca.h 3KB
sqlda.h 3KB
Check.h 3KB
DBStruct.h 3KB
Input.h 2KB
MySocket.h 2KB
MySocket.h 2KB
Form.h 2KB
Tools.h 2KB
DateTime.h 1KB
MyDes.H 1KB
sqlucs2.h 1009B
FormQueryNodeAllUser.h 1002B
FormQueryNote.h 934B
ThreadManage.h 793B
MessageBox.h 789B
Staffer.h 787B
ThreadOperation.h 779B
Thread.h 704B
FormDestroyAccount.h 697B
FormOpenAccount.h 671B
FormChangePwd.h 661B
FormTransfer.h 649B
FormWithdraw.h 649B
FormSaving.h 633B
FormQuery.h 625B
FormLogin.h 625B
FormMain.h 619B
IniInfo.h 600B
banksys.ini 169B
banksys.ini 169B
bank_server.ini 41B
bank_server.ini 41B
oraSQX10.LIB 1.54MB
oraSQX9.LIB 1.28MB
oraSQL10.LIB 32KB
共 126 条
- 1
- 2
资源评论
- waitme12011-09-09最近正在做这个,多谢了!!有一部分还不是很懂啊,对oracle还不是很了解·····
- dc199101302013-05-25嗯,控制台操作,模拟的实际环境。。
copylegend
- 粉丝: 10
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功