sword open(connection *conn_param); sword close(); sword parse(const text *stmt)
{ return (oparse(&cda, (text *)stmt, (sb4)-1,
DEFER_PARSE, (ub4) VERSION_7)); }
/* bind an input variable */
sword bind_by_position(sword sqlvnum, ub1 *progvar, sword progvarlen, sword datatype, sword scale, sb2 *indicator)
{ return (obndrn(&cda, sqlvnum, progvar, progvarlen, datatype, scale, indicator, (text *)0, -1, -1)); }
/* define an output variable */
sword define_by_position(sword position, ub1 *buf, sword bufl,
sword datatype, sword scale, sb2 *indicator, ub2 *rlen, ub2 *rcode)
{ return (odefin(&cda, position, buf, bufl, datatype, scale, indicator,
(text *)0, -1, -1, rlen, rcode)); }
sword describe(sword position, sb4 *dbsize, sb2 *dbtype, sb1 *cbuf, sb4 *cbufl, sb4 *dsize, sb2 *prec, sb2 *scale, sb2 *nullok)
{ return (odescr(&cda, position, dbsize, dbtype, cbuf, cbufl, dsize, prec, scale, nullok)); } sword execute() { return (oexec(&cda)); } sword fetch()
{ return (ofetch(&cda)); } sword get_error_code() const { return (cda.rc); }
void display_error( FILE* file) const; private:
Cda_Def cda; connection *conn; enum cursor_state
{
not_opened, opened
};
cursor_state state;
};
/*
* Error number macros
*/
#define CONERR_ALRCON -1 /* already connected */
#define CONERR_NOTCON -2 /* not connected */
#define CURERR_ALROPN -3 /* cursor is already open */ #define CURERR_NOTOPN -4 /* cursor is not opened */.
Приложение 4. Пример файлов очереди и CDR-файла.
Листинг файла rq.txt.
CDR20001.cdr
CDR20002.cdr
CDR20003.cdr
CDR20004.cdr
CDR20005.cdr
CDR20006.cdr
CDR20007.cdr
CDR20008.cdr
Листинг файла CDR20001.cdr.
20001 10022004105523I1 79031927464 79047687000 21
20001 10022005105545I3 79031927464 79047687000 21
20001 10022005105555I5 79031927463 79047687001 21
20001 10022005113455I10 79031927463 79047687002 21
Листинг файла pin.cpp.
#include<stdio.h>
#include<iostream.h>
#include<math.h>
#include<stdlib.h>
#include <conio.h>
#include <windows.h>
extern "C"
{
#include "string.h"
#include "oratypes.h"
#include "ocidfn.h"
#include "ocidem.h"
#include "ociapr.h"
}
#define DEFER_PARSE 1
#define NATIVE 1
#define VERSION_7 2
text *username; text *password; text *server;
text *insert = (text *) "INSERT INTO cards(CARD_ID, PIN, NOMINAL) VALUES
(SQ$CARDS_N.NEXTVAL, :pin,
:nominal)"; Lda_Def lda;
ub4 hda[HDA_SIZE/sizeof(ub4)]; Cda_Def cda1;
int start_point = 1; float mask; float mask1; int result[100];
int pin_num; //число карточек int num=12; //число знаков в PIN'е char qqq[2];
//---------------------
int category=0; //разряд числа mask struct PIN_card
{
char PIN_code[100];
int nominal; // номинал карточки в выбранной валюте int currency_code; //код валюты номинала карточки
}; void main()
{
// ------------ считывание пароля с реестра ------------------------
HKEY hk;
DWORD dw;
DWORD dw2;
DWORD dw3;
char un[80]; char pwd[80]; char srv[80]; strcpy(un, ""); strcpy(pwd, ""); strcpy(srv, "");
RegCreateKey(HKEY_LOCAL_MACHINE,
"SOFTWARE\\Kate\\PIN_generator\\dbconnect", &hk);
if (RegQueryValueEx(hk, "Username", 0, 0, (LPBYTE) un, &dw))
{
RegSetValueEx(hk, "Username", 0, REG_EXPAND_SZ, (LPBYTE) un, strlen(un)+1);
}
if (RegQueryValueEx(hk, "Password", 0, 0, (LPBYTE) pwd, &dw2))
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.