?? login.c
字號:
/* Result Sets Interface */
#ifndef SQL_CRSR
# define SQL_CRSR
struct sql_cursor
{
unsigned int curocn;
void *ptr1;
void *ptr2;
unsigned long 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[55];
};
static const struct sqlcxp sqlfpn =
{
54,
"F:\\數(shù)據(jù)庫\\課程設(shè)計(jì)\\課程設(shè)計(jì)zhu\\provider\\login\\login.pc"
};
static unsigned long sqlctx = 752611525;
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;
void *sqhstv[4];
unsigned int sqhstl[4];
int sqhsts[4];
void *sqindv[4];
int sqinds[4];
unsigned int sqharm[4];
unsigned int *sqharc[4];
unsigned short sqadto[4];
unsigned short sqtdso[4];
} sqlstm = {10,4};
/* SQLLIB Prototypes */
extern void sqlcxt (void **, unsigned long *,
struct sqlexd *, const struct sqlcxp *);
extern void sqlcx2t(void **, unsigned long *,
struct sqlexd *, const struct sqlcxp *);
extern void sqlbuft(void **, char *);
extern void sqlgs2t(void **, char *);
extern void sqlorat(void **, unsigned long *, void *);
/* Forms Interface */
static const int IAPSUCC = 0;
static const int IAPFAIL = 1403;
static const int IAPFTL = 535;
extern void sqliem(char *, int *);
static const char *sq0003 =
"select * from Pro_Power ";
static const char *sq0007 =
"select ID from Provider where ID=:b0 ";
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[] =
{10,4130,852,0,0,
5,0,0,1,0,0,27,89,0,0,4,4,0,1,0,1,97,0,0,1,97,0,0,1,97,0,0,1,10,0,0,
36,0,0,2,0,0,31,101,0,0,0,0,0,1,0,
51,0,0,3,36,0,9,184,0,0,0,0,0,1,0,
66,0,0,3,0,0,13,188,0,0,2,0,0,1,0,2,97,0,0,2,97,0,0,
89,0,0,4,39,0,3,266,0,0,2,2,0,1,0,1,97,0,0,1,97,0,0,
112,0,0,5,0,0,29,268,0,0,0,0,0,1,0,
127,0,0,6,0,0,31,273,0,0,0,0,0,1,0,
142,0,0,7,48,0,9,289,0,0,1,1,0,1,0,1,97,0,0,
161,0,0,7,0,0,13,293,0,0,1,0,0,1,0,2,97,0,0,
};
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <sqlca.h>
#include <conio.h>
#include <process.h>
void connMenu();
void connect(char* user,char* pw,char* dblink);
int error();
void pro_login();
int query_pro_exist();
void pro_Menu();
void login_menu();
int query_proID_unique(char* tID);
void pro_register();
int insert_into_proPower();
extern void pro_meg_modify_menu();
extern void release_supply();
extern void part_add_request();
extern void sign_bussiness();
char Pro_ID[10]; /*供應(yīng)商登陸用戶名*/
char Pro_Password[10]; /*登陸密碼*/
main()
{
connMenu();
login_menu();
pro_Menu();
}/*main()*/
void connMenu()
{
char temp;
char username[20];
char password[20];
char dblinkname[20];
printf("正在啟動供應(yīng)商客戶端......\n\n\n");
printf("\t\t---請選擇連接方式---\n\n");
printf("\t\t 1. 默認(rèn)方式\n");
printf("\t\t 2. 手動連接\n");
printf("\t\t ...任意鍵退出\n\n");
printf("請選擇連接方式(1 or 2 ,quit with any other key):");
temp=getchar();
fflush(stdin);
switch(temp) {
case '1':
connect("system","manager","willim");
break;
/*默認(rèn)*/
case '2':
printf("輸入連接用戶名:");
gets(username);
printf("輸入連接口令:");
gets(password);
printf("輸入連接字符串:");
gets(dblinkname);
connect(username,password,dblinkname);
break;
/*手動*/
case '0': exit(1); /*退出*/
default : printf("Exit the system!\n");exit(1);/*退出系統(tǒng)*/
}/*switch*/
}/*connectMenu()*/
void connect(char* user,char* pw,char* dblink)
{
/* EXEC SQL BEGIN DECLARE SECTION; */
char username[20];
char password[20];
char dblinkname[20];
/* EXEC SQL END DECLARE SECTION; */
strcpy(username,user);
strcpy(password,pw);
strcpy(dblinkname,dblink);
/* EXEC SQL WHENEVER SQLERROR DO error(); */
/*錯誤處理*/
/* EXEC SQL CONNECT :username IDENTIFIED BY :password USING :dblinkname; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 10;
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 *)username;
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 *)password;
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 *)dblinkname;
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;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
if (sqlca.sqlcode < 0) error();
}
printf("\nConnected to ORACLE as user:%s\n",username);
printf("你已成功鏈接供應(yīng)商客戶端\n");
}/*Conn()*/
int error()
{
printf("發(fā)生了一些錯誤,sorry,還沒完成錯誤處理功能!");
/* EXEC SQL WHENEVER SQLERROR CONTINUE; */
printf("\nORACLE error detected:\n");
printf("\n%.70s\n",sqlca.sqlerrm.sqlerrmc);
/* EXEC SQL ROLLBACK; */
{
struct sqlexd sqlstm;
sqlstm.sqlvsn = 10;
sqlstm.arrsiz = 4;
sqlstm.sqladtp = &sqladt;
sqlstm.sqltdsp = &sqltds;
sqlstm.iters = (unsigned int )1;
sqlstm.offset = (unsigned int )36;
sqlstm.cud = sqlcud0;
sqlstm.sqlest = (unsigned char *)&sqlca;
sqlstm.sqlety = (unsigned short)256;
sqlstm.occurs = (unsigned int )0;
sqlcxt((void **)0, &sqlctx, &sqlstm, &sqlfpn);
}
/*RELEASE; */
return 1;
connMenu();
return 0;
}/*error()*/
void pro_Menu()
{
char temp;
fflush(stdin);
/*clrscr(void); */
system("cls");
puts("\n\n供應(yīng)商客戶端\n\n");
puts("\n\n\t\t\t主功能菜單\n\n");
printf("\t1.個人信息維護(hù)\n");
printf("\t2.發(fā)布供應(yīng)信息\n");
printf("\t3.申請?zhí)砑恿慵n");
printf("\t4.簽訂交易\n");
printf("\t....任意鍵退出\n\n");
do {
printf("請選擇(1 - 4 ,quit with any other key):");
temp=getchar();
fflush(stdin);
}while(temp==1||temp==2||temp==3||temp==4);
switch(temp) {
case '1':
pro_meg_modify_menu();break;
case '2':
release_supply();break;
case '3':
part_add_request();break;
case '4':
sign_bussiness();break;
}
}/*pro_Menu()*/
void pro_login()
{
int more = 0;
printf("\n登陸供應(yīng)商客戶端提示:\n");
while(1){
++more;
printf("\n請輸入用戶名:");
scanf("%s",Pro_ID);
printf("\n請輸入密碼:");
scanf("%s",Pro_Password);
if( !query_pro_exist() ){
/*printf("(pro_login)%s,%s\n",Pro_ID,Pro_Password); */
printf("成功登陸.\n"); break;
}else{
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -