powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / freetds + C
9 сообщений из 9, страница 1 из 1
freetds + C
    #37745280
swood
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем здравствуйте. Пытаюсь научиться проверять состояние MsSQL. Код пишу крайне простой:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <errno.h>
#include <unistd.h>
#include <libgen.h>


#include <sybfront.h>
#include <sybdb.h>

int err_handler(DBPROCESS*, int, int, int, char*, char*);
int msg_handler(DBPROCESS*, DBINT, int, int, char*, char*, char*, int);

int main() {
    DBPROCESS *dbproc;
    LOGINREC *login;
    DBCHAR name[100];

    dbinit ();

    login = dblogin();
    DBSETLUSER(login, "login");
    DBSETLPWD(login, "passwd");
    DBSETLAPP(login, "Freetds");
    dbproc = dbopen(login, "SERVERNAME");
    dbcmd(dbproc, "SELECT @@SERVERNAME");
    dbsqlexec(dbproc);
    if (dbresults(dbproc) == SUCCEED)
        {
            dbbind(dbproc, 1, NTBSTRINGBIND, 0, name);
            while (dbnextrow(dbproc) != NO_MORE_ROWS) {
                printf("%s\n", name);
            }
        }
    dbexit();
    return 0;
}


Дальше собираю и при запуске получаю следующее:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
# gdb ./sample
GNU gdb 6.1.1 [FreeBSD]
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "i386-marcel-freebsd"...(no debugging symbols found)...
(gdb) run
Starting program: /home/user/sample
[New LWP 100170]
[New Thread 0x28201040 (LWP 100170)]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x28201040 (LWP 100170)]
tds_dstr_copyn (s=0x6374652f, src=0x280c69db "SYBASE", length=6) at tdsstring.c:88
88              if (s->dstr_s != tds_str_empty)
(gdb) bt
#0  tds_dstr_copyn (s=0x6374652f, src=0x280c69db "SYBASE", length=6) at tdsstring.c:88
#1  0x280b67b5 in tds_dstr_copy (s=0x6374652f, src=0x280c69db "SYBASE") at tdsstring.c:139
#2  0x2808e4e2 in tdsdbopen (login=0x281baed3, server=0x280c69db "SYBASE", msdblib=0) at dblib.c:1176
#3  0x280970fc in dbopen (login=0x281baed3, server=0x0) at dbopen.c:48
#4  0x281589c7 in getpwent_r () from /lib/libc.so.7
#5  0x2815a2cb in getpwent_r () from /lib/libc.so.7
#6  0x2818ccd4 in nsdispatch () from /lib/libc.so.7
#7  0x28157f04 in getpwuid_r () from /lib/libc.so.7
#8  0x280b5dc9 in tds_get_homedir () at threadsafe.c:534
#9  0x280aa791 in tds_get_home_file (file=0xbfbfe930 "") at config.c:321
#10 0x280aab2a in tds_read_conf_file (connection=0x2822d0c0, server=0x2820a0b0 "SERVERNAME") at config.c:372
#11 0x280ab768 in tds_read_config_info (tds=0x282200c0, login=0x2820d080, locale=0x2820a030) at config.c:190
#12 0x2808e555 in tdsdbopen (login=0x2820b088, server=0x80489bb "SERVERNAME", msdblib=0) at dblib.c:1192
#13 0x080487cd in main ()
(gdb) quit


Может кто-нибудь подсказать почему происходит такое поведение? Версия системы FreeBSD 7.2 i386. freeTDS version 0.91.
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
# tsql  -C
Compile-time settings (established with the "configure" script)
                            Version: freetds v0.91
             freetds.conf directory: /usr/local/etc
     MS db-lib source compatibility: no
        Sybase binary compatibility: yes
                      Thread safety: yes
                      iconv library: no
                        TDS version: 7.1
                              iODBC: no
                           unixodbc: no
              SSPI "trusted" logins: no
                           Kerberos: no
...
Рейтинг: 0 / 0
freetds + C
    #37745978
invariant
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сервер субд во freetds.conf прописан?
...
Рейтинг: 0 / 0
freetds + C
    #37746101
swood
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
invariant, Да. Вот кусок конфига:
[server]
host=192.168.1.23
port=1433
tds version=7.0
database=database
...
Рейтинг: 0 / 0
freetds + C
    #37752425
swood
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Насколько я понимаю ни у кого идей нет, почему так может происходить. Или я не в тот форум написал? Модераторы, подскажите пожалуйста.
...
Рейтинг: 0 / 0
freetds + C
    #37753117
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подсказываю: FreeTDS это очень устаревший проктол. Им сейчас никто не пользуется.
Для работы с ASE существует OpenClient CtLib. Подробнее читай отсюда: http://infocenter.sybase.com/help/topic/com.sybase.infocenter.help.conn.15.0/title.htm
Оно прекрасно живет на FreeBSD с линуксовыми библиотеками.
...
Рейтинг: 0 / 0
freetds + C
    #37753421
Sergey Orlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я в свое время боролся с freetds, точнее из perl'а через freetds ходил к ASA7, так вот тогда получалось, что имя сервера должно совпадать с именем базы, а сам сервер ASA искать по ip...
...
Рейтинг: 0 / 0
freetds + C
    #37753599
Sergey Orlov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е. конфиг выглядел так
[mbase]
host=192.168.1.23
port=1433
tds version=7.0
database=mbase
...
Рейтинг: 0 / 0
freetds + C
    #37757292
swood
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
White OwlПодсказываю: FreeTDS это очень устаревший проктол. Им сейчас никто не пользуется.
Для работы с ASE существует OpenClient CtLib. Подробнее читай отсюда: http://infocenter.sybase.com/help/topic/com.sybase.infocenter.help.conn.15.0/title.htm
Оно прекрасно живет на FreeBSD с линуксовыми библиотеками.

А нет ли у кого-нибудь исходников этого чудесного клиента. На сайте я нашел некий сервер, но он не внушает мне особого доверия и как-то очень много весит.
...
Рейтинг: 0 / 0
freetds + C
    #37757395
Imperous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в инсталяции сервера сидит клиент
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / freetds + C
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]