테스트해보고 말씀드립니다.....
컴팔 이상없고,,, 커널 나랑 똑같고... ^^
프로그램 별 이상없고....
무엇이 문제이냐.....
dbopen() 뒤에서 루핑도는것 같은데..뭐냐뭐냐뭐냐...
이 문제는 네트웍 문제로 사료되옵니다. DBserver설정오류나
netconfig 문제입니다.
일단,,,
dbopen(login, "myserver2"); 의 , myserver2 설정이 잘못되었는지
살펴봅시다.
---->
/usr/local/freetds/interfaces 파일 오픈해서
myserver2 항목이 MS-SQL 설치된 서버인지 확인해보세요.
IP가 잘못 기재되었을 경우, 이런 현상이 나옵니다.
잘못된 것이 없으면 netconfig를 때려서,,,
네트워크 설정을 다시한번 해보시고, 리부팅 깔끔하게 하고
사용해보십시오. 혹시라도 DNS나 게이트웨이가 잘못 설정되어
있을 수 있습니다.
그러면 연결될 것입니다.
그 외에, userid나 passwd 잘못되면 connect 에러메시지를 뿌리고,
테이블이 없는경우는 쿼리를 수행하지만 빈 버퍼내용을 출력하지요.
답변이 늦어서 죄송합니다. 성공하세요...
-- 달콩이 님이 쓰신 글:
>> 먼저 정말 죄송합니다..
>> 바쁘신데... ㅠ.ㅠ
>>
>> 제가 쓰는 환경은..
>> 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;
>> }
>> }
|