Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Try... Catch... / 12 сообщений из 12, страница 1 из 1
25.06.2006, 18:42
    #33813436
barrabas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Try... Catch...
Решил потренироваться в С++, в процессе сталкнулся с одной проблемкой с использованием обработчика исключений, вот функция на Билдере 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
25.06.2006, 22:00
    #33813513
Карабас Барабас
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Try... Catch...
barrabas
OleFunction, OleProcedure, OleProperty* не выдают исключений, просто обычные MessageBox с сообщением, которое непонятно как ловить. Я лично использую Exec(Procedure, Exec(Property*, Exec(Function
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
25.06.2006, 22:32
    #33813533
barrabas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Try... Catch...
Карабас Барабас 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
25.06.2006, 22:35
    #33813535
barrabas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Try... Catch...
разобрался :)
_____________________________________
А я хочу Брежнева, чтобы все было по прежнему... "Стволы"
...
Рейтинг: 0 / 0
25.06.2006, 22:57
    #33813546
barrabas
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Try... Catch...
И еще один вопрос.
Сделал для пробы форму с двумя гридами которые подключены к одному mdb и одной таблице, только один грид подключен к "ADOconnection<->DataSorse<->ADOQuery" которые находятся на форме, а второй к такойже связке только в модуле банных. и сделал кнопку с кодом
Код: plaintext
Form1->ADOQuery1->Requery();

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

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

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

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

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


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