📄 dbfunc.cp
字号:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <memory.h>
#include <sys/types.h>
#include "etc.h"
#include "sybtesql.h"
#include "sybhesql.h"
EXEC SQL INCLUDE SQLCA;
void error_handler();
void warning_handler();
void notfound_handler();
int DB_connect(char *uid, char *pwd, char *svc);
void DB_close();
void DB_Commit();
void DB_Rollback();
void error_handler()
{
printf("SQLCODE = %d\n", sqlca.sqlcode);
if (sqlca.sqlerrm.sqlerrml)
{
printf("SQL Server Error:");
printf("%s\n\n", sqlca.sqlerrm.sqlerrmc);
}
return ;
}
void warning_handler()
{
if (sqlca.sqlwarn[1] == 'W')
{
printf("Data truncated.\n");
}
if (sqlca.sqlwarn[3] == 'W')
{
printf("Insufficient host variables to store results.\n");
}
return;
}
void notfound_handler()
{
printf("No data found for the query.\n");
return;
}
int DB_connect(char *uid, char *pwd, char *svc)
{
EXEC SQL BEGIN DECLARE SECTION ;
char username[64] ;
char password[64] ;
char svcname[64];
EXEC SQL END DECLARE SECTION ;
EXEC SQL WHENEVER SQLERROR CALL error_handler() ;
EXEC SQL WHENEVER SQLWARNING CALL warning_handler() ;
EXEC SQL WHENEVER NOT FOUND CALL notfound_handler() ;
memset( username, '\0', sizeof( username)) ;
memset( username, '\0', sizeof( username)) ;
memset( password, '\0', sizeof( password)) ;
AllTrim(svc);
AllTrim(uid);
AllTrim(pwd);
pwd[6] = 0;
strcpy(svcname, svc);
strcpy(username, uid) ;
strcpy(password, pwd) ;
EXEC SQL CONNECT :username IDENTIFIED BY :password USING :svcname;
if ( sqlca.sqlcode < 0 ) return( sqlca.sqlcode) ;
EXEC SQL EXECUTE IMMEDIATE "set chained off" ;
if ( sqlca.sqlcode < 0 ) return( sqlca.sqlcode) ;
EXEC SQL EXECUTE IMMEDIATE "set transaction isolation level 1" ;
if ( sqlca.sqlcode < 0 ) return( sqlca.sqlcode) ;
return( SUCCESS);
}
void DB_close()
{
EXEC SQL DISCONNECT ALL;
if( sqlca.sqlcode < 0)
fprintf(stdout, "DISCONNECT FAILURE!\n");
return;
}
void DB_Commit()
{
EXEC SQL COMMIT TRANSACTION;
return;
}
void DB_Rollback()
{
EXEC SQL ROLLBACK TRANSACTION;
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -