Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Разработка atl объекта / 18 сообщений из 18, страница 1 из 1
30.06.2005, 15:34
    #33143058
noobel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка atl объекта
В atl-проект после включения заголовочного файла и попытки объявить объект типа CDatabase выдаются ошибки:
error C2065: 'CDatabase' : undeclared identifier
c:\Program Files\Microsoft Visual Studio\MyProjects\iGrafNoo\GrafNoo.cpp(22) : error C2146: syntax error : missing ';' before identifier 'mdb'
c:\Program Files\Microsoft Visual Studio\MyProjects\iGrafNoo\GrafNoo.cpp(22) : error C2065: 'mdb' : undeclared identifier
Error executing cl.exe.
посоветуйте что сделать
...
Рейтинг: 0 / 0
30.06.2005, 18:04
    #33143663
Tracer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка atl объекта
error C2065: 'mdb' : undeclared identifier

включи файл с описанием mdb
...
Рейтинг: 0 / 0
01.07.2005, 09:56
    #33144273
noobel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка atl объекта
mdb - это как раз переменная типа CDatabase
...
Рейтинг: 0 / 0
01.07.2005, 10:25
    #33144356
Alex_VC
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка atl объекта
CDatabase- это, IMHO, MFC - класс и нуна подключить нуный хидер (вроде afxdb.h или поищи в контекстной помощи (F1) по данному классу (MSDN)).
...
Рейтинг: 0 / 0
01.07.2005, 10:34
    #33144384
noobel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка atl объекта
Файл подключен и без объявления переменной все компилится.
Только при попытке объявления переменной загоны начинаются.
В проекте с использованием MFC все намана, но это не преемлемо
...
Рейтинг: 0 / 0
01.07.2005, 10:55
    #33144448
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка atl объекта
noobelФайл подключен и без объявления переменной все компилится.
Только при попытке объявления переменной загоны начинаются.
В проекте с использованием MFC все намана, но это не преемлемо

то есть ты пытаешся юзать MFC класс какойто , но так как это не приемлемо ты не хочешь делать
"CDatabase- это, IMHO, MFC - класс и нуна подключить нуный хидер (вроде afxdb.h или поищи в контекстной помощи (F1) по данному классу (MSDN))." (с)
Alex_VC

так чтоли получается ?
...
Рейтинг: 0 / 0
01.07.2005, 11:32
    #33144575
noobel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка atl объекта
типа того.
мне нуна использовать MFC класс в atl-проекте
...
Рейтинг: 0 / 0
01.07.2005, 12:16
    #33144715
kolobok0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка atl объекта
Попробуйте создать болванку (визардом) в которой будет интересующая Вас комбинация. Если прокатит - сравните все заголовочные файлы и свойства проектов.

Если Вам нужно чиссо обращение к БД и Вы тянете только из-за этого MFC, то это кривизна. Более того CDatabase, CRecordset и т.п. классы - не совсем удачная сторона MFC. Рекомендую сформулировать для себя понимание того, что Вам необходимо от БД и реализовать свои классы. Это и меньше по обьёму, более гибче и элегантнее выйдет.


с уважением
(круглый)
ЗЫ
Хотя бывает и визард прописывает явную ерунду - но то более навороченные проекты :)
...
Рейтинг: 0 / 0
01.07.2005, 14:38
    #33145206
noobel
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка atl объекта
CDatabase единственное известное мне решение при работе с odbc.
может что-нить еще посоветуете - буду рад...
...
Рейтинг: 0 / 0
01.07.2005, 17:37
    #33145784
kolobok0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка atl объекта
Если взять апишные вызовы ODBC и сделать свою обёртку то можно убить следующих зайцев...
1) чёткое управление конекшеннами. обычно лист конекшеннов. из любого места в программе: хочу-получаю-работаю.
2) работа с нулевыми значениями полей. работа с обычными типа (их не так много). перегружая операторы получите достаточно простые комбинации, при гибкости составления SQL запросов.
пример...

MainRecordset set("xruDB"); // в пуле уже есть открытый коннекшен, а может и нет - всё зависит от реализации и фантазии.

char strSql[] = "Select gav, tav, may From kuku Where first=1";
set.Exec(strSql);
while(set.Fetch())
{
int i = set.GetField(1);
char c = set.GetField(2);
long l = set.GetField(3);
}

и т.д..
С таким подходом Вы гибче и быстрее сможете обеспечивать как создание, так и модификацию обращений к БД, чем аналогичные классы из эмфэсей...

Это совет (типа как совет дня :) ) пришло из опыта. Когда в проекте более 2000 классов и многие из них чайлды от CRecordset - программа гораздо тяжелее и не поворотливее (как выполнение, так и сопровождение), чем способ описанный выше.

с уважением
(круглый)
ЗЫ
хотя...
"У каждого портного - свой взгляд на исскуство." Казьма Прутков.
...
Рейтинг: 0 / 0
01.07.2005, 17:52
    #33145815
alex_k
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка atl объекта
у меня почти так сделано только для firebird.
работа с базой выглядит примерно так:

TFBDATABASE db;
db.connect(...);//параметры подключения
TFBTRANSACTION trn(db);
TFBQUERY q(db,trn);

q.setSql("select gav, tav, may from kuku where first=1");
q.open();
while (!q.eof())
{
int i=q.fields(0).asInteger();
string c=q.fields(1).asString();
long l=q.fields(2).asInteger();
q.next();
};


пул соединений мысль очень интересная, но пока не вижу необходимости.
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
04.07.2005, 11:53
    #33147561
kolobok0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка atl объекта
Ну вот !
теперыча нуна только перегрузить коннекшен к базе и юзать ODBC как будто она "firebird". :) Или есть существенные подводные камни ?


(кпуглый)
ЗЫ
Если планируеться ВСЁ юзать через "универсальныую методу" ODBC - то тогда завести необходимые учётные записи в одибиси и работать через него. В принцепе тормозов практически нет, но появляеться лишняя точка настроек (хотя это не всегда гуд) :)
...
Рейтинг: 0 / 0
06.07.2005, 11:05
    #33151674
Alex_VC
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка atl объекта
noobelCDatabase единственное известное мне решение при работе с odbc.
может что-нить еще посоветуете - буду рад...
Советую вместо ODBC- ADO (IMHO, быстрее работает...)
...
Рейтинг: 0 / 0
06.07.2005, 19:03
    #33153148
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка atl объекта
Alex_VCСоветую вместо ODBC- ADO (IMHO, быстрее работает...)
Это с чего вдруг ADO будет работать быстрее чем ODBC? Особенно если учесть что ADO это надстройка над ODBC :)
ODBC - универсальная система доступа к базам данных по принципу функций. ADO обертка этих функций в объекты.
...
Рейтинг: 0 / 0
06.07.2005, 19:06
    #33153152
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка atl объекта
kolobok0Если планируеться ВСЁ юзать через "универсальныую методу" ODBC - то тогда завести необходимые учётные записи в одибиси и работать через него. В принцепе тормозов практически нет, но появляеться лишняя точка настроек (хотя это не всегда гуд) :)
Вовсе не обязательно заводить учетные записи. Можно формировать строку подключения к базе в рантайме и отдавать ее функции SQLDriverConnect().
...
Рейтинг: 0 / 0
06.07.2005, 19:32
    #33153186
kolobok0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка atl объекта
можно... но встречал траблы при таком подходе...может и сам дурак - ХЗ..

(круглый)
...
Рейтинг: 0 / 0
06.07.2005, 19:44
    #33153202
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка atl объекта
kolobok0можно... но встречал траблы при таком подходе...может и сам дурак - ХЗ..
Да, при использовании DSN-less connections есть несколько проблем:
Если путь между клиентом и сервером БД различается в разных инсталляциях. Тогда прийдется либо делать достаточно хитрую процедуру поиска сервера БД в сети, либо создавать специальный файл конфигурации в котором прописывать как клиент должен искать сервер. При использовании DSN эти "правила поиска сервера" прописываются в стандартном для ODBC стиле и юзер может сам их исправлять, если конечно умеет обращаться с ODBC Adminstrator :)
Вторая проблема DSN-less подключения - твоя клиентская программа завязывается на конкретный драйвер ODBC. При апгрейде версии драйвера (если его имя сменится) либо при желании использовать драйвер совершенно для другой базы данных (смена типа сервера БД) то прийдется опять либо делать конфигурационный файл, либо хитрую процедуру перенастройки. DSN хранит всю эту информацию в себе - практически готовый конфигурационный файл.
...
Рейтинг: 0 / 0
07.07.2005, 11:54
    #33154091
kolobok0
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Разработка atl объекта
[quot White Owl
Вовсе не обязательно ....[/quot] А это откель Вы взяли ? (в смысле утверждение) ик ?

Ктстаи ! Об обязательности речь не шла :)

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


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