程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SyBase數據庫 >> SyBase綜合文章 >> sybase嵌入式c/c++編程例子(根據系統自帶example1.cp改寫)

sybase嵌入式c/c++編程例子(根據系統自帶example1.cp改寫)

編輯:SyBase綜合文章

teststu.cp

#include <stdio.h>


/*建立通訊區域*/
EXEC SQL INCLUDE SQLCA;

/* 
** These tokens must be declared in a declare section
** because they are used in declare sections below.
*/
EXEC SQL BEGIN DECLARE SECTION;
#define TYPESIZE 	13
#define	TIDSIZE 	6
EXEC SQL END DECLARE SECTION;

#define  EOLN	'\0'
/* 
** Forward declarations of the error and message handlers and
** other subroutines called from main().
*/
void	error_handler();
void	warning_handler();

int
main(int argc, char *argv[])
{
/*聲明宿主變量*/
	EXEC SQL BEGIN DECLARE SECTION;
	/* storage for login name and password. */
	char	username[30];
 	char 	sname[30];
	char	password[30];
	char 	server[30];
	EXEC SQL END DECLARE SECTION;
/*錯誤處理*/
	EXEC SQL WHENEVER SQLERROR CALL error_handler();
	EXEC SQL WHENEVER SQLWARNING CALL warning_handler();
	EXEC SQL WHENEVER NOT FOUND CONTINUE;
	
/*連接到 SQL SERVER 服務器*/

	strcpy(username, "mymotif");
	strcpy(password, "wxwpxh");
	strcpy(server, "MYMOTIFVOSTRO145480");

	EXEC SQL CONNECT :username IDENTIFIED BY :passWord using :server;
	
/*執行查詢,並顯示結果*/
	EXEC SQL USE testdb;
	EXEC SQL DECLARE c1 CURSOR FOR  
            SELECT SNAME FROM STUDENT;
 	EXEC SQL OPEN c1;  
 	printf("name in table student\n");
   	do {
      		EXEC SQL FETCH c1 INTO :sname;  
      		if (sqlca.sqlcode != 0) break;
     		printf( "student name = %s\n", sname );
   	} while ( 1 );
 	EXEC SQL CLOSE c1;

	return(0);
}

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

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

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

	exit(-1);
}

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

	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;
}

編譯:

$cpre64 -m teststu.cp
$ cc -m64  -g -DSYB_LP64 -I. -I/opt/sybase/OCS-16_0/include  teststu.c /opt/sybase/OCS-16_0/include/sybesql.c -L/opt/Sybase/OCS-16_0/lib  -lsybct64 -lsybtcl64 -lsybcs64 -lsybcomn64 -lsybintl64 -lsybunic64  -rdynamic -ldl -lnsl -lm   -o teststu

執行:

$ ./teststu 
name in table student
student name = 馬志元                    
student name = 馬元                       
student name = 王海濱                    
student name = 金力標                    
student name = 馬小樂                    
student name = 馬娟
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved