⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 db.pc

📁 proc 代码
💻 PC
字号:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
/*
#include <sybtesql.h>
#include <sybhesql.h>
*/
#include <time.h>
#include <unistd.h>
#include <math.h>

#include "RSOPpub.h"

EXEC SQL INCLUDE SQLCA;
EXEC SQL INCLUDE "RSOPsql.h";

EXEC SQL WHENEVER SQLERROR CONTINUE;
EXEC SQL WHENEVER SQLWARNING CONTINUE;
EXEC SQL WHENEVER NOT FOUND CONTINUE;

short int siDbConnect()
{
    EXEC SQL BEGIN DECLARE SECTION;
    char    szDbUser[64];
    char    szDbPass[64];
    char    szConnection[64];
    char    szDbName[64];
    char    szServer[64];
    EXEC SQL END DECLARE SECTION;

    FILE *pFp = NULL;
    char szInline[256];
    short int siResp;
    short int siLen;
    char szRPTS_CFG_FILE[128];

    memset(szRPTS_CFG_FILE,0,sizeof(szRPTS_CFG_FILE));

    strcpy(szRPTS_CFG_FILE, getenv("RPTS_CFG_FILE"));
    siTrimsC_all(szRPTS_CFG_FILE,' ');

    if((pFp=fopen(szRPTS_CFG_FILE,"r"))==NULL)
    {
        printf("open CFGFILE [%s] error!\n[%s][%d]",
            szRPTS_CFG_FILE,__FILE__,__LINE__);
        return(-1);
    }

    memset(szInline,0,sizeof(szInline));
    memset(szDbUser,0,sizeof(szDbUser));
    memset(szDbPass,0,sizeof(szDbPass));
    memset(szDbName,0,sizeof(szDbName));
    memset(szServer,0,sizeof(szServer));
    memset(szConnection,0,sizeof(szConnection));

    while(fgets(szInline,255,pFp))
    {
        if(memcmp("DBUSER:",szInline,strlen("DBUSER:"))==0)
        {
            siLen = strlen(szInline);
            memcpy(szDbUser,szInline+strlen("DBUSER:"),siLen-strlen("DBUSER:")-1);
            siResp = siTrimsC(szDbUser,' ');
        }
        else if(memcmp("DBPASS:",szInline,strlen("DBPASS:"))==0)
        {
            siLen = strlen(szInline);
            memcpy(szDbPass,szInline+strlen("DBPASS:"),siLen-strlen("DBPASS:")-1);
            siResp = siTrimsC(szDbPass,' ');
        }
        else if(memcmp("DBNAME:",szInline,strlen("DBNAME:"))==0)
        {
            siLen = strlen(szInline);
            memcpy(szDbName,szInline+strlen("DBNAME:"),siLen-strlen("DBNAME:")-1);
            siResp = siTrimsC(szDbName,' ');
        }
        else if(memcmp("DBSERVER:",szInline,strlen("DBSERVER:"))==0)
        {
            siLen = strlen(szInline);
            memcpy(szServer,szInline+strlen("DBSERVER:"),siLen-strlen("DBSERVER:")-1);
            siResp = siTrimsC(szServer,' ');
        }
        else if(memcmp("DBCONNECT:",szInline,strlen("DBCONNECT:"))==0)
        {
            siLen = strlen(szInline);
            memcpy(szConnection,szInline+strlen("DBCONNECT:"),siLen-strlen("DBCONNECT:")-1);
            siResp = siTrimsC(szConnection,' ');
            break ;
        }
    }

    fclose(pFp);
#ifdef RSOP_BAT_DEGUB
    printf("[%s] [%s] [%s] [%s] [%s]\n",
           szDbUser,szDbPass,szDbName,szServer,szConnection);
#endif


    EXEC SQL CONNECT :szDbUser IDENTIFIED BY :szDbPass AT :szConnection using :szServer;
    if (sqlca.sqlcode != 0)
    {
        printf("connect to sybase server failed:%s\n", sqlca.sqlerrm.sqlerrmc);
        return(-1);
    }

    EXEC SQL USE :szDbName;
    if (sqlca.sqlcode != 0)
    {
        printf("Change current database to %s failed:%s\n",
                szDbName, sqlca.sqlerrm.sqlerrmc);
        return(-1);
    }

    EXEC SQL SET CHAINED OFF;
    if (sqlca.sqlcode != 0)
    {
        printf("set transaction mode failed:%s\n", sqlca.sqlerrm.sqlerrmc);
        return(-1);
    }

    return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -