Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / DB_Library / 24 сообщений из 24, страница 1 из 1
30.01.2001, 02:42
    #32001801
Moth
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB_Library
Двигаюсь по пункам моего плана. (См. ниже)

1. Подключение к SQL.
Прямо в документации все описано подробно. Подключаемся и все работает.
Тем кто в первые столкнется с реализацией хелпа написанного в документации по MS SQL 7.0
хочу предостеречь:
Сам сампл:

#define DBNTWIN32

#include <stdio.h>

#include <windows.h>

#include <sqlfront.h>

#include <sqldb.h>



// Forward declarations of the error handler and message handler.

int err_handler(PDBPROCESS, INT, INT, INT, LPCSTR, LPCSTR);

int msg_handler(PDBPROCESS, DBINT, INT, INT, LPCSTR, LPCSTR,

LPCSTR, DBUSMALLINT);



main()

{

PDBPROCESS dbproc; // The connection with SQL Server.

PLOGINREC login; // The login information.

DBCHAR name[100];

DBCHAR city[100];



// Install user-supplied error- and message-handling functions.

dberrhandle (err_handler);

dbmsghandle (msg_handler);



// Initialize DB-Library.

dbinit ();



// Get a LOGINREC.

login = dblogin ();

DBSETLUSER (login, "my_login");

DBSETLPWD (login, "my_password");

DBSETLAPP (login, "example");



// Get a DBPROCESS structure for communication with SQL Server.

dbproc = dbopen (login, "my_server");



// Retrieve some columns from the authors table in the

// pubs database.



// First, put the command into the command buffer.

dbcmd (dbproc, "SELECT au_lname, city FROM pubs..authors");

dbcmd (dbproc, " WHERE state = 'CA' ");



// Send the command to SQL Server and start execution.

dbsqlexec (dbproc);



// Process the results.

if (dbresults (dbproc) == SUCCEED)

{

// Bind column to program variables.

dbbind (dbproc, 1, NTBSTRINGBIND, 0, name);

dbbind (dbproc, 2, NTBSTRINGBIND, 0, city);



// Retrieve and print the result rows.

while (dbnextrow (dbproc) != NO_MORE_ROWS)

{

printf ("%s from %s\n", name, city);

}

}



// Close the connection to SQL Server.

dbexit ();



return (0);

}



int err_handler (PDBPROCESS dbproc, INT severity,

INT dberr, INT oserr, LPCSTR dberrstr, LPCSTR oserrstr)

{

printf ("DB-Library Error %i: %s\n", dberr, dberrstr);

if (oserr != DBNOERR)

{

printf ("Operating System Error %i: %s\n", oserr, oserrstr);

}

return (INT_CANCEL);

}



int msg_handler (PDBPROCESS dbproc, DBINT msgno, INT msgstate,

INT severity, LPCSTR msgtext, LPCSTR server,

LPCSTR procedure, DBUSMALLINT line)

{

printf ("SQL Server Message %ld: %s\n", msgno, msgtext);

return (0);

}


У меня VC отругался на
dbbind (dbproc, 1, NTBSTRINGBIND, 0, name);
пришдось додумать и заменить на
dbbind (dbproc, 1, NTBSTRINGBIND, 0, (LPBYTE) name);
вторую строку аналогично.

И в закладках Project -> Settings -> Link
в общий перечень добавьте ntwdblib.lib
И пример будет работать.

Да к стате.
Если хотите использовать авторизацию NT кометарьте строчки

/* DBSETLUSER (login, "my_login");

DBSETLPWD (login, "my_password");

DBSETLAPP (login, "example");*/

Удачи.

Moth.
moth@mail.primorye.ru


А я пошел разбираться как вернуть универсальный CRecordSet
и как правильно рисовать Grid.
...
Рейтинг: 0 / 0
27.03.2001, 15:14
    #32003567
borisl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB_Library
Не советую использовать DB-Lib. Пользуйтесь ODBC или ADO - проще будет понимать другие клиентские платформы.
...
Рейтинг: 0 / 0
28.03.2001, 03:04
    #32003606
Moth
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB_Library
Что именно ты хочешь понять в других программах????

Если прога клиент сервер, то вся логика на сервере...

Moth
...
Рейтинг: 0 / 0
28.03.2001, 13:05
    #32003631
borisl
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB_Library
DB-Lib "заморозили" на уровне v.6.5. Все новое, что вышло в v.7.0 и 8.0
не входит в DB-Lib (например, новые типы данных и способы их обработки).
Это конечно печально, поскольку DB-Lib быстрый, но объективная реальность такова, что Microsoft избрал в качестве стратегической линии
OLE DB. Ну ODBC - это industry standart и они его также поддерживают.
В Internet-приложениях как правило используется ADO, да и средства быстрой разработки клиентской части также в основном заточены на ADO.
...
Рейтинг: 0 / 0
28.06.2001, 02:24
    #32008474
Moth
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB_Library
А мне понравилось.
Беру CImageList + DBLib и получается все отменно и интерфейс и скорость.
...
Рейтинг: 0 / 0
29.01.2002, 03:32
    #32021688
lapd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB_Library
При линковке пишет ошибка в файле ntwdblib.dll. Может все же подключать то ntwdblib.dll, а не ntwdblib.lib <- такого файла у меня вообще нет и не было никогда, даже с MS SQL 2000 Client connectivity. Если есть, то где скачать?
...
Рейтинг: 0 / 0
29.01.2002, 03:40
    #32021689
lapd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB_Library
к верхнему письму:
//-------------------------------------------------------------
Linking...
ntwdblib.dll : fatal error LNK1136: invalid or corrupt file
Error executing link.exe.

2.exe - 1 error(s), 0 warning(s)
//-------------------------------------------------------------
...
Рейтинг: 0 / 0
30.01.2002, 01:00
    #32021770
Moth
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB_Library
Пиши на мыло вышлю.
А вообщето этот файл ставиться вместе с 7.0 сервером.
Посмотри на сервере этот файл.
Если что вышлю.
Link естественно .lib
...
Рейтинг: 0 / 0
31.01.2002, 02:26
    #32021839
lapd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB_Library
Спасибо Moth, у меня все заработало!!!
Только вот не знаю где можно найти материалы по db-lib функциям и примеры. Может ты подскажешь?
...
Рейтинг: 0 / 0
31.01.2002, 22:33
    #32021944
Moth
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB_Library
В Sql-Book_OnLine

C:\WIN98\HH.EXE C:\MSSQL7\BOOKS\SQLBOL.CHM

У меня так.

Как будет минутка, более подробно и по русский на www.firststeps.ru

Moth.
...
Рейтинг: 0 / 0
01.02.2002, 02:12
    #32021948
lapd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB_Library
Что не нашел в firststeps.ru раздела по db-lib !
...
Рейтинг: 0 / 0
06.02.2002, 04:25
    #32022262
lapd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB_Library
Moth и все остальные!!!

Где можно найти исчерпывающие материалы по Db-Lib в Инете??? Плз, дайте ссылку.
В Firststeps.ru такого раздела не нашел. А SQL 7 под рукой нет.
...
Рейтинг: 0 / 0
06.02.2002, 05:47
    #32022267
Moth
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB_Library
Все чем владею, я нашел в Book on line которая идет вместе с сервером.

Moth.
...
Рейтинг: 0 / 0
04.04.2002, 11:14
    #32026962
Serg
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB_Library
Написал класс-обертку для DB-lib на VC и COM-объект (ATL) на его основе.
Теперь работаю и из Visual C++ и из Visual Basic.
Легко, удобно и быстро.

Если что, то по: csvboss@mail.ru
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
16.05.2003, 15:17
    #32161878
director
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB_Library
Как это все работает!!!
А я вот хочу юзать dbserverenum (список серверов). Пишу все как в примере из BOL, а в ответ: Linker error: Unresolved external function _dbserverenum ...

P.S. пишу на Билдере и у него есть свои зоголовки с такими же именами, но другие размеры и даты. У кого есть опыт борьбы поделитесь!!!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
05.12.2006, 14:18
    #34177592
onnly
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB_Library
Здравствуйте!
Помогите с решением проблемы: имеется SYBASE. Программа пишется на Builder C++. Осуществляются запросы SQL к базе. Если выполнение запроса не требует много ресурсов (временных и т.д.), то он выполняется успешно. Используется TQuery.
В другом случае верный трудоемкий запрос (корректность его выполнения проверялась при помощи SQL Explorer в Builder C++ ) - не выполняется, виснет программа.
Было желание использовать библиотеку ntwdblib.lib.Только можно ли с SYBASE? Не подскажете?!
И если можно, то как?А то пишет "Unresolved external 'dbinit'(=имя функции, что пытается использоваться) from ...(=путь к проекту)*.obj".
Очень прошу помочь решить проблему! МУчаюсь уже неделю.......
...
Рейтинг: 0 / 0
05.12.2006, 14:25
    #34177623
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB_Library
В настройках проекта добавить библиотеку к линковщику.

ПС: А с прошлого века топик не нашелся?
...
Рейтинг: 0 / 0
05.12.2006, 17:56
    #34178512
onnly
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB_Library
AkhВ настройках проекта добавить библиотеку к линковщику.

А библиотека ntwdblib.lib уже подключена к проекту.

Проясню ситуацию.
Может, я что неверно делаю:
работаю с SYBASE, и, просмотрев examples, включаю файлы:

#include <stdio.h>
#include <stdlib.h>
#include <sybfront.h>
#include <sybdb.h>
#include <syberror.h>


При таком раскладе и появляется моя ошибка.

А пример, приведенный в этом топике, для MS SQL и включаются:

#define DBNTWIN32
#include <sqlfront.h>
#include <sqldb.h>
#include <stdio.h>

Если включаю последние указанные мной файлы -
то инициализация библиотеки происходит.

далее - функции

if( ( dbinit() ) == NULL ) goto Error;
if( ( login = dblogin() ) == NULL ) goto Error;
if( ( DBSETLUSER(login, Login.c_str()) ) == FAIL ) goto Error;
if( ( DBSETLPWD(login, Pass.c_str()) ) == FAIL ) goto Error;
if( ( DBSETLVERSION(login, DBVER60) ) == FAIL ) goto Error;
выполняются

потом
if( ( dbproc = dbopen(login, Server.c_str()) ) == FAIL ) goto Error;

не срабатывает.

Ошибка:
"DB-Library error: Unable to connect: SQL Server is unavaliable or does not exist. Unable to connect: SQL Server does not exist or network access denied"

потом пишет "Operating-system error: ConnectionOpen(Connect())"

Это меня и смутило, что надо подключать не те инклуды.....

Вопрос:
проблема может быть с неверным паролем или логином или именем сервера?

Login - точно верен
Pass - точно верен

Server - здесь испробовано и имя сервера, и алиаса (для базы на SYBASE сделан алиас, пароль и логин указываю алиаса)

Base - имя базы (той, для которой был сделан алиас) - верно пишу точно

В чем проблема?

ПС: А с прошлого века топик не нашелся?

Просто не хотелось заводить новую тему, так как похожая уже существует...Но хотя было мало надежды, что кто-то ответит:)
...
Рейтинг: 0 / 0
05.12.2006, 17:58
    #34178517
onnly
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB_Library
ой!
с оформлением предыдущего сообщения ошибочка вышла ..первый раз
извиняйте........
...
Рейтинг: 0 / 0
05.12.2006, 18:05
    #34178537
Akh
Akh
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB_Library
onnly...

С этими функциями и БД не работал. Так что могу только предположить, что сервак на машине не стоит?
...
Рейтинг: 0 / 0
05.12.2006, 18:09
    #34178549
onnly
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB_Library
Akh onnly...

С этими функциями и БД не работал. Так что могу только предположить, что сервак на машине не стоит?

Сервак стоит не на моей машине.
Отсюда и алиасы вроде нужны...
а.........видмо вот и не указать имя сервака, а алиас не годится...
...
Рейтинг: 0 / 0
05.12.2006, 18:10
    #34178552
onnly
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB_Library
имею в виду имя сервака так просто не указать.......
...
Рейтинг: 0 / 0
05.12.2006, 18:13
    #34178563
onnly
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB_Library
Просто сказали, что с этой библиотекой вроде надежнее осуществлять запросы и, несмотря на время выполнения, запрос будет сделан.
Вот у меня в SQL Explorer запрос медленно, но выполняется, а в Builder как загонишь - все виснет - и тут и сказке конец
...
Рейтинг: 0 / 0
08.12.2006, 14:01
    #34186258
onnly
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DB_Library
Понятно: желающих помочь особо нет...
НО решение проблемы было найдень мной - в верном указании имени сервера - необходимо было добавить адрес.

Теперь есть другой вопрос - может кто отзовется???????????????????????

В запросе к серверу используются несколько баз.
И, если делать сравнение или приравнивание к примеру поля таблицы одной базы к ...другой - то запрос срабатывает.

А если добавить в этот запрос еще пару строк, где обращение тока к ОДНОЙ ИЗ ИСПОЛЬЗУЕМЫХ баз, то ошибка -


"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"

Предполагаю проблему - происходит дисконнект от сервера при выполнении запроса.

Вопрос: что не так?

Если ЭТОТ ТОЧНО ТАКОЙ ЖЕ ЗАПРОС легко срабатывает в SQL Explorer в Builder C++

Помогите!!!!!!!!!!!!!!!!!!!!
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / DB_Library / 24 сообщений из 24, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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