-- 김명화 님이 쓰신 글:
>> 씨언어를 어느정도 사용하시는 지 모르겠네요. 리눅스는 처음이라고
>> 하신것 같은데... 컴파일은 또한 어찌하셨는지...
>> 제가 볼땐 컴파일 문제라든지, 다른 에러같거든요.....
>> dbopen이 안되는 경우 로그인 에러, 네트워크 접근불가라는 에러가
>> 나옵니다. dbopen 앞뒤로 프린트찍어보셨나요..
>>
>> 보통 유저생성할때 사용할 DB도 설정하고, 그 아래 테이블 들을 건드리는
>> 것이니까, 기본 DB를 오픈할 겁니다.
>> 확실하게 사용할 DB를 선언하고 싶으시면, dbopen() 후에,
>> dbuse(dbproc,"DB명")을 써주세요.
>>
>> 테스트 프로그램은 달콩이님이 사용하신 것 제 환경에 맞춰 조금 수정해서
>> 사용했었는데 문제가 없거든요.
>>
>> 잘 안되신 경우,
>> 님의 환경이랑, 디렉토리랑, makefile이랑.. 올려보세요.
>> ( 지금 일이 무쟈게 로드가 걸리고 있어서 제 코가 석자인데,, T.T~)
>>
>>
먼저 정말 죄송합니다..
바쁘신데... ㅠ.ㅠ
제가 쓰는 환경은..
wow Linux7.1 + window2000 server에 있는 MS-SQL + C
이렇구요..
freetds는 5.0버전은 install했구.. 위치는..
/usr/local/freetds입니다..
컴파일은...
gcc -I/usr/local/freetds/include -L/usr/local/freetds/lib -lsybdb test.c -o aaa
이렇게 해서 실행화일 만들었구요...
./aaa 이렇게 실행했었거든요..
근데...
file aaa(실행 파일이름) 이렇게 해서..ELF-32bit LSB excutable Intel 80386.. 이런 메세지가 나오면 컴파일은 정상이라고 하던데..
아! 글구..
dbopen()앞뒤로 프린트 해봤는데..
앞에꺼만 딱 나오구.. loop도는거 같더라구요..
바쁘실텐데..
정말 죄송합니다........ T.T
테스트했던 소스 다시 올립니다..
#include <stdio.h>
#include "sybfront.h"
#include "sybdb.h"
int main()
{
int n = 0;
LOGINREC *login;
DBPROCESS *dbproc;
DBCHAR teststr[1024];
printf("###### %d\n", n++);
dbinit();
printf("###### %d\n", n++);
login = dblogin();
DBSETLPWD(login,"pass");
DBSETLUSER(login,"aaa");
DBSETLAPP(login,"TDS Lib Test");
DBSETLHOST(login,"linux");
printf("###### %d\n", n++);
dbproc = (DBPROCESS *)tdsdbopen(login, "myserver2");
printf("garden\n");
if(dbproc==NULL)
{
printf("Connect error!\n");
return 0;
}
printf("###### %d", n++);
if(dbcmd(dbproc, "select * from table where id='aaa'\n")==FAIL)
{
printf("Command failed!\n");
dbexit();
return 0;
}
printf("###### %d", n++);
if(dbsqlexec(dbproc)==FAIL)
{
printf("SQLexec failed!\n");
dbexit();
return 0;
}
}
|