database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
ㆍMS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MS-SQL Q&A 401 게시물 읽기
No. 401
Re: 도와주세요...freetds
작성자
김철환
작성일
2002-05-28 14:03
조회수
7,987

짧은 Compile을 위한 Makefile 입니다

 

libdir=/usr/local/freetds/lib

includedir=/usr/local/freetds/include

LDADD=-L$(libdir) -I$(includedir) -ltds -lsybdb

 

samp : samp.c

gcc -O5 -o $@ $(LDADD) samp.c

 

 

을 풀어서 쓰면

 

gcc -O5 -o samp -L/usr/local/freetds/lib -I/usr/local/freetds/include -ltds -lsybdb samp.c 입니다.

 

 

그리고

syb_msg_handler -> Server로 부터 발생하는 각종 Msg을 받아서 처리하는 Handler입니다

syb_err_handler -> 각종 Error나 경고가 발생할 경우에 처리하는 Handler입니다.

syb_err_handler의 간단한 출력 Sample을 만들어 넣었습니다. 참고 바랍니다.

 

그리고 환경블럭에 설정하는 부분을 아래의 Sample에서는 프로그램이 동적으로 환경블럭을 설정하도록 만들었습니다. 참고하십시요... ^^

 

 

#include <stdio.h>

#include <stdlib.h>

#include "sybfront.h"

#include "sybdb.h"

static syb_msg_handler(dbproc,msgno,msgstate,severity,msgtext,srvname,procname,line)

DBPROCESS *dbproc;

DBINT msgno;

int msgstate;

int severity;

char *msgtext;

char *srvname;

char *procname;

int line;

{

/* ------- msg 출력 routine를 작성한다 ----------- */

}

static int syb_err_handler(dbproc,severity,dberr,oserr,dberrstr,oserrstr)

DBPROCESS *dbproc;

int severity;

int dberr;

int oserr;

char *dberrstr;

char *oserrstr;

{

/* ------- err msg 출력 routine를 작성한다 ----------- */

fprintf(stdout,"Severity : %d\nDBerror No : %d - %s\n",severity,dberr,dberrstr);

fprintf(stdout,"OSerror No : %d - %s ",oserr,oserrstr);

dbexit();

}

 

int main() {

LOGINREC *login; /* login information */

DBPROCESS *dbproc;

char ip_addr[40],ip_port[10];

int i, numCols;

char *teststr[8];

DBINT testint;

DBFLT8 flt;

int firstTimeForHeader = 1;

 

char *env_path; /* Enviroment Check */

/*---------- Enviroment Check & Set -------------- */

env_path = getenv("SYBASE");

if (env_path == NULL)

putenv("SYBASE=/usr/local/freetds");

/*------------------------------------------------ */

 

/* Fortify_EnterScope(); */

dbinit(); /* db-lib를 초기화한다 */

/* err-msg,msg handler를 등록한다 */

dberrhandle( syb_err_handler );

dbmsghandle( syb_msg_handler );

dbinit();

login = dblogin(); /* login record를 가져온다 */

DBSETLPWD(login,"guest"); /* login pass word set */

DBSETLUSER(login,"guest"); /* login id set */

DBSETLAPP(login,"TDS Lib Test"); /* server쪽에 넘겨줄 app name set */

DBSETLHOST(login,"Linuxer"); /* server쪽에 넘겨줄 host이름을 set */

/* 이 프로그램이 실행되는 컴이름 */

/* SQL Server로부터 DBPROCESS 구조체를 가져온다 */

/* 실질적인 연결이 이루어지는 부분입니다. */

dbproc = dbopen(login, "myserver");

/*

* 아래의 dbcmd는 command를 command buffer에 적재합니다 .

* 아직은 서버에 command가 전달되지 않은 상태입니다.

*/

/* dbcmd(dbproc,"select * from publishers where pub_id = '6666'\n"); */

/* dbcmd(dbproc,"select name from sysobjects\n"); */

/* ---------- 아래와 같이 사용해도됨 --------------- */

/* dbcmd(dbproc,"select * from floater"); */

/* dbcmd(dbproc," where pub_id = '6666'\n"); */

 

dbcmd(dbproc,"select count(*) from Autho\n");

/* server에 command를 전달하고 결과를 기다린다. */

dbsqlexec(dbproc);

 

/* ------ 이곳 while문에서 결과를 추출한다 ----------- */

while (dbresults(dbproc)!=NO_MORE_RESULTS) {

for (i=1;i<=dbnumcols(dbproc);i++) {

printf ("col %d is %s\n",i,dbcolname(dbproc,i));

}

dbbind(dbproc,1,INTBIND,-1,(BYTE *) &testint);

/* dbbind(dbproc,2,STRINGBIND,-1,(BYTE *) teststr);*/

/* dbbind(dbproc,1,FLT8BIND,-1,(BYTE *) &flt); */

while (dbnextrow(dbproc)!=NO_MORE_ROWS)

printf("%d\n",testint);

/* printf("%6.3g\n",flt);*/

/* printf("%s\n",teststr);*/

}

dbexit(); /* server와의 접속을 종료한다 */

return 0; /* keep lint happy */

}

[Top]
No.
제목
작성자
작성일
조회
403query error
박선배
2002-05-29
5994
402MSSQL2000 에서 암호화 ENCRYPT 에대해서..
박정우
2002-05-29
7290
399stopat복구 시도중인데.. 도와주세요~
초보자
2002-05-26
6558
397도와주세요...freetds
na
2002-05-24
6578
401┕>Re: 도와주세요...freetds
김철환
2002-05-28 14:03:56
7987
395한글변환이요~~(급합니당)
장미연
2002-05-24
6676
400┕>Re: 한글변환이요~~(급합니당)
우짜
2002-05-27 16:59:18
7185
394왕초보라서 궁금해요...
백현종
2002-05-24
6204
393MS-SQL 초보자 입니다... 고수님들 제발... [1]
백현종
2002-05-23
7926
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.024초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다