Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
DB-Lib и Sybase
|
|||
|---|---|---|---|
|
#18+
Помогите с решением проблемы: имеется SYBASE. Программа пишется на Builder C++. Осуществляются запросы SQL к ОДНОМУ СЕРВЕРУ И ДВУМ (ТРЕМ) БАЗАМ НА НЕЙ. Используется библиотека ntwdblib.lib. Соединение с сервером ПРОИСХОДИТ, выполнение ПРОСТЫХ ЗАПРОСОВ к ОДНОЙ БАЗЕ происходит. НО. Когда запрос обращается сразу к двум базам (проверка на раввенство значений в полях таблицы), то может происходить: "DB-Library Error: Possible network error: Write to SQL Server Failed. General network error" "Operating-system error: ConnectionRead(recv())"" "DB-Library Error: DBPROCESS is dead or not enabled" Происходит дисконнект от сервера при выполнении запроса........... Решение проблемы никак не могу найти....... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 15:20 |
|
||
|
DB-Lib и Sybase
|
|||
|---|---|---|---|
|
#18+
Читай первую тему форума. Ты не можешь обращаться в одном запросе к двум базам одновременно. Клиент может делать два запроса к разным базам одновременно, потом самостоятельно сравнивать резалтсеты. Можно подключить одну базу к другой и таблицы подключенной будут видны в основной как вьюшки, но с точки зрения клиента ты все равно будешь работать с одной базой. --- http://www.rusug.ru] Портал русскоязычной группы пользователей Sybase ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 18:06 |
|
||
|
DB-Lib и Sybase
|
|||
|---|---|---|---|
|
#18+
White OwlЧитай первую тему форума. Ты не можешь обращаться в одном запросе к двум базам одновременно. Совершенно точно. Каждый объект Connection в любой момент времени выполнения в программе может быть связан только с одной определенной базой(на сервере может быть хоть 100 баз). А запрос в каждый момент времени выполнения может быть связан только с одним объектом Connection. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 18:56 |
|
||
|
DB-Lib и Sybase
|
|||
|---|---|---|---|
|
#18+
Ну это для ASA верно, но для ASE - нет. А вдруг у него ASE ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 22:41 |
|
||
|
DB-Lib и Sybase
|
|||
|---|---|---|---|
|
#18+
MasterZivНу это для ASA верно, но для ASE - нет. А вдруг у него ASE ? Согласен. Я в свом ответе некорректно обобщил. Лучше наверно вообще не отвечать авторам, пока сервер не назовут в теме. Я бы ввел на форуме модераторами нечто вроде обязательной формы ввода для открытия определенных тем. Для каждого форума своя форма со своими полями. Не заполнишь - не откроешь тему, не откроешь тему - тебе не помогут, не посоветуют. По крайней мере для тем с вопросами по конкретным ситуациям, ошибкам и т.п. Для тем типа "поговорить", "обсудим" и т.п. конечно такое не нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2006, 23:40 |
|
||
|
DB-Lib и Sybase
|
|||
|---|---|---|---|
|
#18+
Спасибо за советы. У меня SYABASE ASE. Не мог сказать раньше - не было данных. Сервак стоит не у меня. Вообще думаю все вопросы мои были неверны.. Сущность проблемы в том, что не получается работать, подключив: #include <sybfront.h> #include <sybdb.h> #include <syberror.h> Ведь мне необходим вызов функций, таких как dbinit() ... dbcmd(...) dbpool(...) и т.д. ----------- При работе с MSSQL сервером подключаешь ntwdblib.lib включаешь: #include <sqlfront.h> #include <sqldb.h> и все работает! ___________ но здесь что делать? с SYBASE ASE с библиотекой ntwdblib.lib, конечно, не катит (ТОЛЬКО ЕСЛИ СДЕЛАТЬ ДЛЯ SYBASE ПОДКЛЮЧЕНИЕ ВСЕГО КАК ДЛЯ MSSQL, ТОЛЬКО ТОГДА НЕ БУДЕТ ХВАТАТЬ ФУНКЦИЙ - ведь для SYBASE ЕСТЬ ТАКИЕ, КОТОРЫХ НЕТ ДЛЯ MSSQL.......) ПРОСТИТЕ, если вопросы неточны, я совсем новичок. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2006, 14:04 |
|
||
|
DB-Lib и Sybase
|
|||
|---|---|---|---|
|
#18+
авторСущность проблемы в том, что не получается работать, подключив: #include <sybfront.h> #include <sybdb.h> #include <syberror.h> Ведь мне необходим вызов функций, таких как dbinit() ... dbcmd(...) dbpool(...) и т.д. ----------- При работе с MSSQL сервером подключаешь ntwdblib.lib включаешь: #include <sqlfront.h> #include <sqldb.h> и все работает! Ты сам себе ответил. Подключи соответствующую либу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2006, 16:03 |
|
||
|
DB-Lib и Sybase
|
|||
|---|---|---|---|
|
#18+
ответить-то ответил...но что подключить-то?! db-lib или? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2006, 16:48 |
|
||
|
DB-Lib и Sybase
|
|||
|---|---|---|---|
|
#18+
ntwdblib.lib нельзя ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2006, 16:49 |
|
||
|
DB-Lib и Sybase
|
|||
|---|---|---|---|
|
#18+
Понятно, желающих помочь нет пока... Тогда ответьте мне на вопрос другого плана: (он корректирует все предыдущие) Предполагаю проблему - когда идет запрос на выполнение к серверу.Данные в ответ собираются не так бысто! и.......ВОПРОС - как функциями сделать, чтобы ждать "до посинения" ответ от сервера? (функциями указан. библ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2006, 17:39 |
|
||
|
DB-Lib и Sybase
|
|||
|---|---|---|---|
|
#18+
по поводу библиотеки , я бы посмотрел в сторону freetds которая работает и с MS и с SYBASE http://www.freetds.org/ ф-я устанавливающая таймаут: dbsettime ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2006, 20:03 |
|
||
|
DB-Lib и Sybase
|
|||
|---|---|---|---|
|
#18+
Да, такймаут так (dbsettime) ставил ( int seconds = 60000; dbsettime(seconds); dbcmd(dbproc,actt);//actt - текст моего запроса dbsqlexec( dbproc ); // ошибка ) , только проблема осталась (может, что неверно делаю?!), а именно: вызов функции dbsqlexec завершается ошибкой. freetds посмотрю - спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2006, 10:34 |
|
||
|
DB-Lib и Sybase
|
|||
|---|---|---|---|
|
#18+
будто проскакивает выполнение sqlexec просто FAIL - результат а увеличение веремени ожидания не устанавливается это точно. работаю под WindowsXP ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2006, 10:56 |
|
||
|
DB-Lib и Sybase
|
|||
|---|---|---|---|
|
#18+
только что нашел одну ссылку http://]http://www.awmdev.ru/ftopic2814.html написано здесь про dbsettime у человека фигня тоже была - тока работал не под ту платформу, не с той библиотекой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2006, 11:00 |
|
||
|
DB-Lib и Sybase
|
|||
|---|---|---|---|
|
#18+
цитирую: "FreeTDS is a set of libraries for Unix and Linux"....... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2006, 11:06 |
|
||
|
DB-Lib и Sybase
|
|||
|---|---|---|---|
|
#18+
onnlyПри работе с MSSQL сервером подключаешь ntwdblib.lib включаешь: но здесь что делать? с SYBASE ASE Как называются библиотеки DBLib в Sybase OpenClient я уже не помню. Тебе наверное лучше всего взять примеры приложений с DBLib и сделать по их подобию. Примеры есть в поставке сервера и/или Open Client, если нет дистрибутива, скачай девелоперскую версию для NT (оно может быть полезно и в других отношениях). Если очень влом качать я могу послать по почте какой-нить пример, я думаю никаких лицензий я при этом не нарушу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2006, 17:34 |
|
||
|
DB-Lib и Sybase
|
|||
|---|---|---|---|
|
#18+
Я ничего не понял из последующих вопросов, в чем там проблема. Друх, выражайся йаснее ! Про FreeTDS ... оно конечно хорошо, бесплатная и достаточно долго уже успешно работает много где ... Но зачем , если есть возможность использовать родное сертифицированное ПО, использовать вместо него неродное - я не понимаю. Ограничения в использовании OpenClient могут быть только лицензионные, ибо за нее надо платить деньги. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2006, 17:40 |
|
||
|
DB-Lib и Sybase
|
|||
|---|---|---|---|
|
#18+
ты имеешь в виду подобные примеры? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 13:28 |
|
||
|
DB-Lib и Sybase
|
|||
|---|---|---|---|
|
#18+
чето не разместилось ну вот привожу код: #include <stdio.h> #include <sybfront.h> #include <sybdb.h> #include "sybdbex.h" #define DATELEN 26 #define TYPELEN 2 /* Forward declarations of the error handler and message handler. */ int CS_PUBLIC err_handler(); int CS_PUBLIC msg_handler(); main(argc, argv) int argc; char *argv[]; { DBPROCESS *dbproc; /* Our connection with SQL Server. */ LOGINREC *login; /* Our login information. */ /* These are the variables used to store the returning data. */ DBCHAR crdate[DATELEN+1]; DBINT id; DBCHAR name[DBMAXNAME+1]; DBCHAR type[TYPELEN+1]; RETCODE result_code; printf("Demo of SQL queries in a command batch\n\n"); fflush(stdout); if (dbinit() == FAIL) exit(ERREXIT); dberrhandle((EHANDLEFUNC)err_handler); dbmsghandle((MHANDLEFUNC)msg_handler); login = dblogin(); DBSETLUSER(login, USER); DBSETLPWD(login, PASSWORD); DBSETLAPP(login, "example1"); dbproc = dbopen(login, NULL); dbcmd(dbproc, "select name, type, id, crdate from sysobjects"); dbcmd(dbproc, " where type = 'S' "); dbcmd(dbproc, "select name, type, id, crdate from sysobjects"); dbcmd(dbproc, " where type = 'P' "); dbsqlexec(dbproc); while ((result_code = dbresults(dbproc)) != NO_MORE_RESULTS) { if (result_code == SUCCEED) { dbbind(dbproc, 1, NTBSTRINGBIND, (DBINT)0, (BYTE DBFAR *)name); dbbind(dbproc, 2, NTBSTRINGBIND, (DBINT)0, (BYTE DBFAR *)type); dbbind(dbproc, 3, INTBIND, (DBINT)0, (BYTE *)&id); dbbind(dbproc, 4, NTBSTRINGBIND, (DBINT)0, (BYTE DBFAR *)crdate); printf("\n %s Objects: \n\n", DBCURCMD(dbproc) == 1 ? "System Table": "Procedure"); /* Now print the rows. */ while (dbnextrow(dbproc) != NO_MORE_ROWS) { if ((DBCURCMD(dbproc) == 2) && (DBCURROW(dbproc) > 10)) continue; printf ("%s %s %ld %s\n", name, type, id, crdate); } } } dbexit(); exit(STDEXIT); } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 13:30 |
|
||
|
DB-Lib и Sybase
|
|||
|---|---|---|---|
|
#18+
попытаюсь конкретизировать вопрос: запрос выполняется ДОЛГО! ставлю ОЖИДАНИЕ ответа от сервера dbsettime-ом (чтобы dbsqlexec выполнился успешно) - НО ожидания не происходит И dbsqlexec = FAIL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 13:33 |
|
||
|
DB-Lib и Sybase
|
|||
|---|---|---|---|
|
#18+
onnlyты имеешь в виду подобные примеры? Да. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 17:59 |
|
||
|
DB-Lib и Sybase
|
|||
|---|---|---|---|
|
#18+
onnly Пришли на всякий случай Не понял, что присылать. У тебя же есть примеры, как я понял. Кстати по-моему там был пример и на TIMEOUT. Что могу сказать точно, что таймаута в OpenClient вообще-то два, надо их не перепутать. Один тайм-аут - на установку соединения, connection timeout. Другой - на запрос - query timeout. connection timeout должен устанавливаться в соединении после его выделения и перед вызовом db_connect. Второй - что-то уже не помню, в соединении тоже , но точно после соединения с сервером. Сейчас гляну может доку найду.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2006, 18:03 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=34204221&tid=2012339]: |
0ms |
get settings: |
6ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
39ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 318ms |

| 0 / 0 |
