powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Разработка atl объекта
18 сообщений из 18, страница 1 из 1
Разработка atl объекта
    #33143058
noobel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В 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
Разработка atl объекта
    #33143663
Tracer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
error C2065: 'mdb' : undeclared identifier

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

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

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

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


с уважением
(круглый)
ЗЫ
Хотя бывает и визард прописывает явную ерунду - но то более навороченные проекты :)
...
Рейтинг: 0 / 0
Разработка atl объекта
    #33145206
noobel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CDatabase единственное известное мне решение при работе с odbc.
может что-нить еще посоветуете - буду рад...
...
Рейтинг: 0 / 0
Разработка atl объекта
    #33145784
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если взять апишные вызовы 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
Разработка atl объекта
    #33145815
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня почти так сделано только для 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
Разработка atl объекта
    #33147561
kolobok0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну вот !
теперыча нуна только перегрузить коннекшен к базе и юзать ODBC как будто она "firebird". :) Или есть существенные подводные камни ?


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

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

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

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


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