免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2689 | 回复: 6
打印 上一主题 下一主题

[SCO UNIX] 求样本分析:SCO 下SYBASE 的ESQL/C的makefile 设计? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-08-14 22:51 |只看该作者 |倒序浏览
我有一个SCO下SYBASE的ESQL/C方法写的tt.cpre程序,如何建立一个好的编译环境??
tt.cpre:

#include <stdio.h>;
#include <string.h>;
#include "sybsqlex.h"

/* Declare the SQLCA */
EXEC SQL INCLUDE sqlca;

/*
** Forward declarations of the error and message handlers and
** other subroutines called from main().
*/
void    error_handler();
void    warning_handler();


int main()
{
        EXEC SQL BEGIN DECLARE SECTION;
        /* storage for login name and password */
        CS_CHAR                username[30], password[30];
        CS_CHAR                char_col[10], num_col[10], dec_col[30] ;
        CS_CHAR                int_col[10], flt_col[30] ;
        CS_SMALLINT        char_indic, int_indic, flt_indic, num_indic, dec_indic;
        EXEC SQL END DECLARE SECTION ;

        EXEC SQL WHENEVER SQLERROR CALL error_handler();
        EXEC SQL WHENEVER NOT FOUND STOP ;
        EXEC SQL WHENEVER SQLWARNING CALL warning_handler();

        /*
        ** Copy the user name and password defined in sybsqlex.h to
        ** the variables declared for them in the declare section.
        */
        strcpy(username, USER);
        strcpy(password, PASSWORD);

        EXEC SQL CONNECT :username IDENTIFIED BY :password  ;
        EXEC SQL USE tempdb ;
       
        EXEC SQL DECLARE sel_cursor CURSOR FOR select * from all_types ;
        EXEC SQL OPEN sel_cursor ;
       
        printf("Data \t\t Null/Not null \n" ;
        printf("----------------------------------- \n" ;
        for ( ;; )
        {
                strcpy(char_col,"NULL";
                strcpy(int_col,"NULL";
                strcpy(flt_col,"NULL";
                strcpy(num_col,"NULL";
                strcpy(dec_col,"NULL";
               
                if ( sqlca.sqlcode == 100 )
                {
                        printf("No more results. \n";
                        break ;
                }
                EXEC SQL FETCH sel_cursor INTO
                        :char_col        :char_indic,
                        :int_col        :int_indic ,
                        :flt_col        :flt_indic ,
                        :num_col        :num_indic ,
                        :dec_col        :dec_indic ;

                printf("%-20s  %d\n",char_col, char_indic );       
                printf("%-20s  %d\n",int_col , int_indic  );       
                printf("%-20s  %d\n",flt_col , flt_indic  );       
                printf("%-20s  %d\n",num_col , num_indic  );       
                printf("%-20s  %d\n",dec_col , dec_indic );       
                printf("\n \n";
        }
        EXEC SQL DISCONNECT ALL;
        exit(0);
}



/*
** void error_handler()
**
**        Displays error codes and numbers from the SQLCA and exits with
**        an ERREXIT status.
*/
void error_handler()
{
        fprintf(stderr, "\n** SQLCODE=(%d)", sqlca.sqlcode);

        if (sqlca.sqlerrm.sqlerrml)
        {
                fprintf(stderr, "\n** Error Message: ";
                fprintf(stderr, "\n** %s", sqlca.sqlerrm.sqlerrmc);
        }

        fprintf(stderr, "\n\n");

        exit(ERREXIT);
}

/*
** void warning_handler()
**
**        Displays warning messages.
*/
void warning_handler()
{

        if (sqlca.sqlwarn[1] == 'W')
        {
                fprintf(stderr,
                        "\n** Data truncated.\n");
        }

        if (sqlca.sqlwarn[3] == 'W')
        {
                fprintf(stderr,
                        "\n** Insufficient host variables to store results.\n");
        }       
        return;
}



我的makefile是:
# Makefile
#
.SUFFIXES:.cpre

CC=cc
SYBASEDIR=/usr/sybase
LIBDIR=-L$(SYBASEDIR)/lib
INCLDIR=-I$(SYBASEDIR)/include

CPRE=$(SYBASEDIR)/bin/cpre -V CS_VERSION_110  -I$(SYBASEDIR)/include
CFLAGS=-O -DUNIX
LIBS =-lm
EDF=
all:
        for af in *.cpre ;do \
        make -r `basename $$af .cpre`;\
        done
.c:
        @echo Compiling the program $@
        $(CC) -o $@ $< $(CFLAGS) $(INCLDIR) $(LIBDIR)
        @echo "---$@ compiling done."

.cpre.c:
        $(CPRE) $<
        cp $*.c $@


可我在编译时总是不对,我怀疑我的环境设错了,请各位多多指正!!!!!!!!
[/url]

论坛徽章:
0
2 [报告]
发表于 2003-08-15 03:21 |只看该作者

求样本分析:SCO 下SYBASE 的ESQL/C的makefile 设计?

安装嵌C环境,里面有例子.

论坛徽章:
0
3 [报告]
发表于 2003-08-15 10:32 |只看该作者

求样本分析:SCO 下SYBASE 的ESQL/C的makefile 设计?

上楼:
我是从sybase 补丁中安装的cpre,不是完整地安装ESQL_C,所以没有sample例程,请问哪位若有SCO UNIX下sybase的ESQL/C例程,请您将
sample目录下的例程tar个包,compress 一下,通过E_MAIL发给我,我的E_mail是:
zjjqhm1@tom.com

谢谢

论坛徽章:
0
4 [报告]
发表于 2003-08-15 13:35 |只看该作者

求样本分析:SCO 下SYBASE 的ESQL/C的makefile 设计?

原帖由 "zjjqhm1" 发表:
上楼:
我是从sybase 补丁中安装的cpre,不是完整地安装ESQL_C,所以没有sample例程,请问哪位若有SCO UNIX下sybase的ESQL/C例程,请您将
sample目录下的例程tar个包,compress 一下,通过E_MAIL发给我,我的E_ma..........
   


这样干能行吗?如果能编译的话我也想试一试!

论坛徽章:
0
5 [报告]
发表于 2003-08-18 10:06 |只看该作者

求样本分析:SCO 下SYBASE 的ESQL/C的makefile 设计?

自已顶一下,sybase编程高手帮过忙,OK?

论坛徽章:
0
6 [报告]
发表于 2003-08-20 22:07 |只看该作者

求样本分析:SCO 下SYBASE 的ESQL/C的makefile 设计?

这是我以前开发时用的makefile。具体环境是sco505 ,sybase 11.0.3,希望对你由帮助

    all : sybpre zqwt_qssvr zqwtrzqs zqwtrskj zqwts2b zqwtsecuclear

sybpre: dblib.c te.c

CC=cc
SCC=cpre
ECFLAG=-c -s
BINDIR=$(HOME)/bin
INCLDIR=-I. -I../include -I$(SYBASE)/include
LIBDIR=-L$(HOME)/lib -L$(SYBASE)/lib
LIBS=libcom.a -lccbpub -ltong -lmidapi -lsybdb -lct -lcs -ltcl -ltli -lnsl -lcomn -lintl -lm -lsocket -lnsl -lx
OBJS=func.o dblib.o writelog.o

zqwt_qssvr: zqwt_qssvr.o $(OBJS)
        $(CC) -o $@ zqwt_qssvr.o $(OBJS) $(LIBDIR) $(LIBS)
        mv $@ $(BINDIR)

zqwtrzqs: zqwtrzgl.o $(OBJS)
        $(CC) -o $@ zqwtrzgl.o $(OBJS) $(LIBDIR) $(LIBS) -s
        mv $@ $(BINDIR)

zqwtrskj: zqwtrskj.o $(OBJS)
        $(CC) -o $@ zqwtrskj.o $(OBJS) $(LIBDIR) $(LIBS) -s
        mv $@ $(BINDIR)

zqwts2b: zqwts2b.o $(OBJS)
        $(CC) -o $@ zqwts2b.o $(OBJS) $(LIBDIR) $(LIBS) -s
        mv $@ $(BINDIR)

zqwtsecuclear: zqwtsecuclear.o $(OBJS)
        $(CC) -o $@ zqwtsecuclear.o $(OBJS) $(LIBDIR) $(LIBS) -s
        mv $@ $(BINDIR)

testclear: testclear.o $(OBJS)
        $(CC) -o $@ testclear.o $(OBJS) $(LIBDIR) $(LIBS) -s
        mv $@ $(BINDIR)

te: te.o $(OBJS)
        $(CC) -o $@ te.o  $(OBJS) $(LIBDIR) $(LIBS)
        mv $@ $(BINDIR)

.SUFFIXES:
.SUFFIXES: .cp .c .o

.c.o:
        $(CC) -c -DDEBUG $(INCLDIR) $<

.cp.c:
        $(SCC) $(ECFLAG) $(INCLDIR) $<

论坛徽章:
0
7 [报告]
发表于 2003-08-26 21:39 |只看该作者

求样本分析:SCO 下SYBASE 的ESQL/C的makefile 设计?

X X
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP