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 98 게시물 읽기
No. 98
Re: SQL2000에 리눅스 연결중 문제가..
작성자
김명화(bonus)
작성일
2001-10-16 12:08
조회수
11,050

안녕하세요...

지금은 해결을 하셨는지 모르겠네요..

초보리눅서님의 글을 읽으니, dbsqlexec명령을 아래와 같이 쓰면

exit루틴으로 들어가버린다는 말씀인가요?

FAIL값이 제가 알기론 0으로 설정되어 있을텐데, dbsqlexec(dbproc)

가 FAIL값을 가질 경우는

dbproc구문을 수행할 퍼미션이 주어지지 않았을 때,

select 구문 중 column name, table name에 오류가 있을때,

network 장애 시 등입니다.

freetds 예제로 주어진 .c, .h등을 포함해서 컴파일 하셨으면,,

db-library error(severity value)하고 기본적인 에러구문이 나올텐데요...

에러를 안뿌리던가요?

 

 

-- 초보리눅서 님이 쓰신 글:

>> freetds를 이용해서 SQL2000에서 데이타를 가져 오려고 합니다.

>>

>> dbproc = dbopen(login, "mssql2000");

>>

>> dbcmd(dbproc, "select 어쩌구 저쩌구...");

>>

>> 요기까지는 잘 처리가 되어서 문제가 없었구요...

>>

>> if(dbsqlexec(dbproc)==FAIL)

>> {

>> printf("SQLexec failed!\n");

>> dbexit();

>> return 0;

>> }

>>

>> dbsqlexec에서 명령이 전달이 안됩니다...

>>

>> 뭐가 문제인지 알려주세요... ㅜ.ㅡ

>>

>> 몇일동안 이 문제 때문에 돌아버릴 지경입니다. @.@

>>

>> 그럼 고수님들 한수 부탁드려용~

>>

>> - 초보리눅서

>>

>> 추신:해결해주시면 밥이라도 한끼(술을 못먹음) 쏩니당...

이 글에 대한 댓글이 총 6건 있습니다.

김명화님 관심 가져 주셔서 고맙습니다.(--)(__)

 

제가 설치한 내용은요...

freetds 5.1을 인스톨 했구요...

./configure --with-tdsver=4.5 --enable-msdblib --enable-dbmfix --with-gnu-ld --enable-shared --enable-static

으로 해주고 make하고 에러 없어서 root로 make install 했습니다.

SYBASE=/usr/local/freetds

LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$SYBASE/lib

export SYBASE LD_LIBRARY_PATH

 

/usr/local/freetds/interfaces에다는

mssql20000

query tcp ether TestDB 1433

master tcp ether TestDB 1433

을 넣구요...

 

DB 담장자에게 부탁해서 사용할수 있는 계정을

받았습니다.

ID testing, PW testpw 로 받았구요..

 

/etc/hosts에 TestDB가 선언되어 있습니다.

 

다음은 테스트 프로그램입니다.

 

------------------------------------------------

int main()

{

LOGINREC *login;

DBPROCESS *dbproc;

DBCHAR teststr[1024];

 

dbinit();

 

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

//dberrhandle( syb_err_handler );

//dbmsghandle( syb_msg_handler );

 

login = dblogin(); DBSETLUSER(login,"testing");

DBSETLPWD(login,"testpw");

DBSETLAPP(login,"TDS Lib Test");

DBSETLHOST(login,"linux");

 

dbproc = tdsdbopen(login, "mssql2000");

if(dbproc==NULL)

{

printf("Connect error!\n");

return 0;

}

if(dbcmd(dbproc, "select b_id from login_user_end\n")==FAIL)

{

printf("Command failed!\n");

dbexit();

return 0;

}

if(dbsqlexec(dbproc)==FAIL)

{

printf("SQLexec failed!\n");

dbexit();

return 0;

}

.

 

dbopen도 잘 넘어가구요...

dbcmd도 잘 들어갑니다.

그런대 dbsqlexec에서는 에러가 나면서

프로그램을 빠져 나갑니다.

어떤 부분이 잘못된건지...

DB쪽으로 접근하는걸 처음 하다 보니...

너무 아는게 없어서 미치겠내요... ㅜ.ㅜ

부디 해결하게 좀 도와주세요...

아니면 다른 방법도 좋으니...

C나 C++을 이용하는 방법을 좀 자세히 알려주세요.

초보리눅서님이 2001-10-16 23:50에 작성한 댓글입니다.

에구구 freetds5.3입니다.

 

그리구 LD_LIBRARY_PATH설정부분이

 

이상하게 올라갔군요.. ㅡㅡ;

 

건강하세요~

초보리눅서님이 2001-10-17 01:38에 작성한 댓글입니다.

잘 읽어보았습니다.

틀릴것도 말것도 없는 기본적인 구문들이거든요.

^^

커넥션이 성공적으로 이루어지고, dbcmd도 넘어갔다고 하셨잖아요.

dbcmd에 쓰신 b_id 컬럼이나, login_user_end가

확실하게 있는 것이라면 그것을 검색할 퍼미션이

주어지지 않았을 경우도 생각해보셔야해요.

 

dbcmd 구문을 이것으로 바꾸어보세요.

퍼미션과 상관없는 구문으로..

select name,crdate from master..sysdatabases

where name = 'DATABSE명'

DATABASE 는 PWD에 써놓은 DB명입니다.

이걸로 테스트한번 해보세요..

 

그리고, dbcmd에 컬럼값이나 테이블값이 잘못되어도 dbcmd는 FAIL값을 갖지 않습니다. dbsqlexec로

넘어가죠.

이런 문제가 아니라면 더이상 생각하기 힘든걸요.

 

컴파일을 하실때, test.c와, command.c를 함께 컴파일하시고요.

막아두신 dberrhandle, dbmsqhandle을 풀어주십시오.

정확한 오류를 짚어줍니다.

bonus님이 2001-10-17 11:42에 작성한 댓글입니다.

이건 코멘트를 위한 테스트

advance님이 2001-10-19 10:44에 작성한 댓글입니다.

테스트..

hurd님이 2001-10-19 10:44에 작성한 댓글입니다.

또 테스트..

hurd님이 2001-10-19 10:48에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
101linux+MsSQL [1]
조양훈
2001-10-18
12089
100sql 실행 정보 가로채는(?) 방법
오세영
2001-10-17
13071
99win98에서 SQLServer7.0리스토어시...
guest
2001-10-16
9183
97SQL2000에 리눅스 연결중 문제가..
초보리눅서
2001-10-15
9443
98┕>Re: SQL2000에 리눅스 연결중 문제가.. [6]
김명화
2001-10-16 12:08:48
11050
96DB 설계시... 관계설정 문제 [2]
박종필
2001-10-13
9668
95ms sql=>my sql로 변환 방법? [1]
korwin
2001-10-12
8828
94ORA-00001에 해당아하는 error num이 없나요
정승기
2001-10-09
8793
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다