
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
16.02.2004, 07:37
|
|||
|---|---|---|---|
commit |
|||
|
#18+
Здравствуйте. На выходных написал программку для обновления таблички из текстового файла на с++ через ib api. Селекты делаются нормально, но как только пытаюсь удалить(или вставить) данные, программа подвисает на операции: isc_commit_transaction транзакция создается так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. коммит делается так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. есть идеи? причем программа один раз отработала на ура. затем я сделал кое-какие косметические изменения(не помню какие, вроде бы не важные) и все. работать перестала. те же операции но через программу написанную на делфи происходят влет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.02.2004, 07:38
|
|||
|---|---|---|---|
commit |
|||
|
#18+
да, еще. транзакция по умолчанию: Код: plaintext 1. ничего не меняет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.02.2004, 09:54
|
|||
|---|---|---|---|
commit |
|||
|
#18+
Может deadlock -и? Попробуй commit перед запросом и commit после запроса. p.s. Я почти не использую isc_commit_transaction, просто выполняю runQuery("commit"); - пока срабатывало как надо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
18.02.2004, 22:52
|
|||
|---|---|---|---|
commit |
|||
|
#18+
дело вот как обстоит, довольно любопытно. если я исполняю запрос, который не возвращает набор данных (insert, delete etc) а затем пытаюсь сделать isc_dsql_fetch() то ошибок я не получаю, зато при попытке удаления statment handle isc_dsql_free_statement( status, &fHandle, DSQL_drop ); приложение подвисает на неопределенное время. вот такая фишка. думаю нужно определять тип запроса при помощи isc_dsql_sql_info ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
19.02.2004, 07:04
|
|||
|---|---|---|---|
commit |
|||
|
#18+
alex_k дело вот как обстоит, довольно любопытно. если я исполняю запрос, который не возвращает набор данных (insert, delete etc) а затем пытаюсь сделать isc_dsql_fetch() то ошибок я не получаю, зато при попытке удаления statment handle isc_dsql_free_statement( status, &fHandle, DSQL_drop ); приложение подвисает на неопределенное время. вот такая фишка. думаю нужно определять тип запроса при помощи isc_dsql_sql_info Знаешь, я б тебе посоветовал изучить содержимое файла examples/apifull.c. Я свои классы начал писать только после внимательного изучения примеров( судя по твоему вопросу ты туда даже не заглядывал или заглядывал мельком), постовляемых с FB (точнее IB 6.0) + API guidе И у меня пока (тьфу, тьфу,тьфу) еще не было серьезных проблем. Правда для FB 1.5 надо кое-что подправить. Для Linux: 1) Заменить Код: plaintext 1. 2. 3. 4. на Код: plaintext 1. 2. 3. 4. И компилировать так: gcc -o apifull apifull.c -lfbclient -lcrypt ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
04.03.2004, 22:47
|
|||
|---|---|---|---|
commit |
|||
|
#18+
спасибо за подсказку, почитал, подумал. теперь у меня работают инсерты, селекты и прочее. по идее хранимые процедуры тоже должны работать, он не проверял. работает почти все, кто заинтересован в посмотрении, обращайтесь в мыло: alex_k at trk7 dot ru ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.03.2004, 10:45
|
|||
|---|---|---|---|
commit |
|||
|
#18+
Код: plaintext 1. С String (AnsiString) .c_str() не есть гуд. Сам накалывался на этих прЫколах: Код: plaintext 1. 2. 3. 4. 5. 6. Внимание - вопрс: чему теперь равняется a? 100% гарантию дает старый добрый массив. _________________ "Hello, word!" - 17 errors 56 warnings ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.03.2004, 10:59
|
|||
|---|---|---|---|
commit |
|||
|
#18+
внимание вопрос. причем сдесь AnsiString? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.03.2004, 12:21
|
|||
|---|---|---|---|
commit |
|||
|
#18+
Со string не работал - врать не буду. Просто предположил, что м.б. имеет место указанный глюк. _________________ "Hello, word!" - 17 errors 56 warnings ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.03.2004, 12:29
|
|||
|---|---|---|---|
commit |
|||
|
#18+
на характер проверил Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. теже яйца, только в профиль... _________________ "Hello, word!" - 17 errors 56 warnings ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.03.2004, 12:37
|
|||
|---|---|---|---|
commit |
|||
|
#18+
ладно, поверю тебе не проверяя. и что делать? посыпать голову пеплом? пусть пока так будет, появится более лучший вариант, переделаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
05.03.2004, 12:58
|
|||
|---|---|---|---|
commit |
|||
|
#18+
Зачем пеплом-то? Я просто выделяю массив char'ов. Потом туда strcpy то что нужно... Далее действуем по правилу великого чешского ученого Буравчика _________________ "Hello, word!" - 17 errors 56 warnings ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
07.03.2004, 09:26
|
|||
|---|---|---|---|
commit |
|||
|
#18+
2alex_k >по идее хранимые процедуры тоже должны работать, он не проверял. Select сработает однозначно, а вот для execute procedure надо немного по другому. Я сделал так: if (statement_type==isc_info_sql_stmt_exec_procedure) isc_dsql_execute2(status, &trans, &stmt, SQL_DIALECT_V6, NULL,sqlda); (statement_type получено ранее с помощью isc_dsql_sql_info) Если все нормально, то структура sqlda содержит значения полей, возвращаемые execute procedure Если ты сделал на основе apifull, то есть там еще один подводный камень: Размер всех данных возвращаемых isc_dsql_fetch не должен превышать 1024 байт, поскольку там используется довольно оригинальный метод выделения памяти под sqldata: вместо более простого malloc/free для каждого sqldata, там используется один общий buffer[1024] . Поэтому если использовать данный метод, то, мне кажется, лучше определить динамический массив и в случае необходимости делать realloc. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
08.03.2004, 22:44
|
|||
|---|---|---|---|
commit |
|||
|
#18+
2somebody может стоит опубликовать исходники? обсудим, что к чему, может кому пригодится... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
10.03.2004, 23:09
|
|||
|---|---|---|---|
commit |
|||
|
#18+
2alex_k >может стоит опубликовать исходники? >обсудим, что к чему, может кому пригодится... Прошу прощения за долгое молчание - киндеры мои приболели, не до инета было. Насчет исходников - если есть где опубликовать или просто интересно взглянуть - вышлю, мне не жалко. А вот обсуждать не знаю чего. Для меня это уже давно пройденный этап. Да и IB/FB это у меня как дополнительная нагрузка + кормушка, а так специализация у меня несколько другая. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.03.2004, 22:41
|
|||
|---|---|---|---|
commit |
|||
|
#18+
2alex_k Сырцы здесь Проверялось только для Линукс. Ссылка активна максимум 2 недели ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
11.03.2004, 23:11
|
|||
|---|---|---|---|
commit |
|||
|
#18+
посмотрел, спасибо. можно я твой trim дюзну? ну и вообще :-) по желанию если что понравится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.03.2004, 09:33
|
|||
|---|---|---|---|
commit |
|||
|
#18+
alex_k можно я твой trim дюзну? ну и вообще :-) по желанию если что понравится? Так для того и выложил, чтобы "дюзал" все что понравится А trim там случайно оказался - забыл убрать, когда вставлял фрагмент из другой проги. Ну и есть там кое-какие баги/полубаги(мне пока жить не мешают) - если нужно, могу список набросать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
12.03.2004, 23:57
|
|||
|---|---|---|---|
commit |
|||
|
#18+
список не надо, я простым копированием не занимаюсь. пока не пойму, использовать не буду, но вообще интересно, щас во всю пересматриваю свой код :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.03.2004, 07:40
|
|||
|---|---|---|---|
commit |
|||
|
#18+
Ну удачи тебе. Сам свои сырцы выкладывать бушь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.03.2004, 07:56
|
|||
|---|---|---|---|
commit |
|||
|
#18+
позже :-) когда буду хоть чуть-чуть доволен результатами. у меня оказывается совсем нет параметров :-) как без них выкладывать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
21.03.2004, 15:00
|
|||
|---|---|---|---|
commit |
|||
|
#18+
очень долго думал зачем менять Код: plaintext 1. 2. 3. 4. на Код: plaintext 1. 2. 3. 4. в линуксе так и не понял... у меня нормально работает и под виндой vc6 и под фришкой gcc 2.95 без этих изменений ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
23.03.2004, 06:45
|
|||
|---|---|---|---|
|
|||
commit |
|||
|
#18+
2alex_k Для начала уточни что у именно тебя работает Я имел ввиду только apifull.c из примеров и не работоспособность, а возможность компиляции. Так вот, apifull.c без этих изменений компилиться не должен в принципе. Данная структура vary нужна для работы с varchar-ами . С FB 1.5 эта структура определена в ibase.h и поскольку она также определена в apifull.c то имеем "redefinition of `struct vary'" . В принципе можно было заменить на typedef struct vary VARY - просто я тогда поленился заглянуть в ibase.h и не знал, что в ibase.h и в apifull.c эта структура определена почти одинаково. Короче говоря, имелось ввиду то, что эти изменения нужны только для успешной компиляции apifull.c (чтобы избежать ошибки redefinition of `struct vary'). Прошу прощения если это не было ясно сразу. ;-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=40&mobile=1&tid=1578985]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
3ms |
track hit: |
170ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
54ms |
get tp. blocked users: |
2ms |
| others: | 246ms |
| total: | 512ms |

| 0 / 0 |
