powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Try... Catch...
12 сообщений из 12, страница 1 из 1
Try... Catch...
    #33813436
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Решил потренироваться в С++, в процессе сталкнулся с одной проблемкой с использованием обработчика исключений, вот функция на Билдере 6 которая создает пустую аксесовскую базу, но когда файл базы уже создан то функция разумеется выдает ошибку, а вот как ее обработать?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
int __fastcall CreateTempDB()
{
    Variant eng,dbs;
    try
    {
        AnsiString filename = ExtractFilePath(Application->ExeName)+"a.mdb";
        eng = CreateOleObject("DAO.DBEngine.36");
        dbs = eng.OleFunction("CreateDatabase",
                              (WideString)filename,
                              (WideString)";LANGID=0x0419;CP=1251;COUNTRY=0",
                              Variant::NoParam());
        dbs.OleFunction("Close");
    }
    catch(...)  //суда почемуто не попадаем если происходит ошибка
    {
        eng = Unassigned;
        dbs = Unassigned;
        return  0 ;
    }
    eng = Unassigned;
    dbs = Unassigned;
    return  1 ;
}

может кто подскажет как в си устроен обработкич, в VB все просто, а тут чегото не разбирусь никак.
_____________________________________
А я хочу Брежнева, чтобы все было по прежнему... "Стволы"
...
Рейтинг: 0 / 0
Try... Catch...
    #33813513
Карабас Барабас
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
barrabas
OleFunction, OleProcedure, OleProperty* не выдают исключений, просто обычные MessageBox с сообщением, которое непонятно как ловить. Я лично использую Exec(Procedure, Exec(Property*, Exec(Function
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
Try... Catch...
    #33813533
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Карабас Барабас barrabas
OleFunction, OleProcedure, OleProperty* не выдают исключений, просто обычные MessageBox с сообщением, которое непонятно как ловить. Я лично использую Exec(Procedure, Exec(Property*, Exec(Function

Спасибо, что то ругается и так и так
Код: plaintext
1.
2.
        dbs = eng.Exec(Function("CreateDatabase"
                                <<NamedParm("name",filename)
                                <<NamedParm("locale",";LANGID=0x0419;CP=1251;COUNTRY=0")));

Код: plaintext
1.
        
dbs = eng.Exec(Function("CreateDatabase"<<filename<<";LANGID=0x0419;CP=1251;COUNTRY=0")));
можешь подсказать как правильно
...
Рейтинг: 0 / 0
Try... Catch...
    #33813535
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
разобрался :)
_____________________________________
А я хочу Брежнева, чтобы все было по прежнему... "Стволы"
...
Рейтинг: 0 / 0
Try... Catch...
    #33813546
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И еще один вопрос.
Сделал для пробы форму с двумя гридами которые подключены к одному mdb и одной таблице, только один грид подключен к "ADOconnection<->DataSorse<->ADOQuery" которые находятся на форме, а второй к такойже связке только в модуле банных. и сделал кнопку с кодом
Код: plaintext
Form1->ADOQuery1->Requery();

Запускаю приложение, изменяю что нибудь в гриде у которого источник данных "ADOQuery2" и жму на кнопку, но изменение в гриде с "ADOQuery1" наступают через секунд 5-10 а иногда и дольше, т.е. грид обновляется (моргает, указатель становится на первую запись, а данные изменяются не сразу, нужно несколько раз жать или подождать несколько секунд и обновить). Ничего сложного в запросе нет это простой селекс к одной таблице из трех записей, куда столько времени уходит?
_____________________________________
А я хочу Брежнева, чтобы все было по прежнему... "Стволы"
...
Рейтинг: 0 / 0
Try... Catch...
    #33813548
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_____________________________________
А я хочу Брежнева, чтобы все было по прежнему... "Стволы"
...
Рейтинг: 0 / 0
Try... Catch...
    #33813554
Alexey-M
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бедные клиенты :))
...
Рейтинг: 0 / 0
Try... Catch...
    #33813558
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Фигня какаято, по идее все должно обновлятся мгновенно, хотя практического смысла у примера нет и врятли понадобится гдето в проекте отображать одни и теже данные из разных "ADOconnection<->DataSorse<->ADOQuery", но почему данные не сразу меняются непонятно. Грид обновляется мгновенно но данные старые, такое ощущение что изменения не летят а менленно ползут из оного АДОКвери до акса, и когда я нажимаю обновить второй АДОквери они еще не успели "доползти"
_____________________________________
А я хочу Брежнева, чтобы все было по прежнему... "Стволы"
...
Рейтинг: 0 / 0
Try... Catch...
    #33813571
Commit.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Commit
...
Рейтинг: 0 / 0
Try... Catch...
    #33815124
Pavel Kilevatyh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну я бы написал:

Код: plaintext
1.
2.
3.
4.
 catch(Exception &e)
    {
        Application->ShowException(&e);
...

Что б видеть что же не понравилось системе.
...
Рейтинг: 0 / 0
Try... Catch...
    #33815420
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavel KilevatyhНу я бы написал:

Код: plaintext
1.
2.
3.
4.
 catch(Exception &e)
    {
        Application->ShowException(&e);
...

Что б видеть что же не понравилось системе.
Да ничего не ругается, просто изменения не сразу происходят почемуто, а через несколько секунд. Данные изменяю не запросом а просто правлю запись в гриде, как commit отправить? транзакция не открывалась же или я что то не понял?
...
Рейтинг: 0 / 0
Try... Catch...
    #33815705
Dmitrii K.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Post ?
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Try... Catch...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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