Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Работа с двумя базами / 11 сообщений из 11, страница 1 из 1
28.08.2007, 10:13
    #34756969
Mityay
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с двумя базами
Впервые понадобилось из приложения, работающего с Oracle,
записать кое-что в MySQL, писать-то пишет, но приложение сразу
же падает без каких бы то ни было сообщений. Не подскажет ли
кто, где копать?
PB10.2.1 build 9823, MySQL через ODBC.
...
Рейтинг: 0 / 0
28.08.2007, 10:29
    #34757030
Dmitry.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с двумя базами
должно быть все впорядке.
видел приложения работающие и с пятью БД.
разве-что лажа в odbc для mySql...
или в вашем коде :)
...
Рейтинг: 0 / 0
28.08.2007, 10:30
    #34757033
Riska
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с двумя базами
Новую транзакцию открываете?
...
Рейтинг: 0 / 0
28.08.2007, 10:48
    #34757094
Mykola
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с двумя базами
Думаю проблема в коде.
Высылайте посмотрим.
...
Рейтинг: 0 / 0
28.08.2007, 10:59
    #34757138
Mityay
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с двумя базами
Да, все честно, CONNECT USING mysql_trans, INSERT....USING mysql_trans,
DISCONNECT USING mysql_trans
...
Рейтинг: 0 / 0
28.08.2007, 11:00
    #34757141
Mityay
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с двумя базами
Собственно, больше ничего и нет.
...
Рейтинг: 0 / 0
28.08.2007, 11:17
    #34757212
Mityay
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с двумя базами
Полностью код такой:
public function boolean wf_estma_insert (integer ai_year, decimal adec_invoice_num, date adt_inv, decimal adec_client, decimal adec_amount, string as_currency);Boolean rb
//
MySQL_TRANS estma

estma = CREATE MySQL_TRANS
estma.DBMS = "ODBC"
estma.AutoCommit = False
estma.DBParm = "ConnectString='DSN=ESTMA;UID=xxxx;PWD=******'"
CONNECT USING estma;
INSERT INTO ocsinv.updinv (year, number, datei, cln, sum, vat, currency)
VALUES (:ai_year, :adec_invoice_num, :adt_inv, :adec_client, :adec_amount, 0.0, :as_currency) USING estma;
COMMIT USING estma;

rb = (estma.SQLCODE = 0)

DISCONNECT USING estma;

Return rb
end funct
...
Рейтинг: 0 / 0
28.08.2007, 12:47
    #34757731
boogiman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с двумя базами
1. После этой CONNECT USING estma; проверяйте SQLCODE (наличие ошибок)
2. INSERT INTO ocsinv.updinv (year, number, datei, cln, sum, vat, currency)
VALUES (:ai_year, :adec_invoice_num, :adt_inv, :adec_client, :adec_amount, 0.0, :as_currency) USING estma;
Приведённый код не есть хорошо. От толстого клиента надо избавляться по возможности... По-моему в последних версиях MYSQL можно писать процедуры. Декларьте процедуру и пусть инсерт происходит внутри данной процедуры...
...
Рейтинг: 0 / 0
28.08.2007, 13:42
    #34758048
Dmitry.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с двумя базами
boogiman1. После этой CONNECT USING estma; проверяйте SQLCODE (наличие ошибок)
2. INSERT INTO ocsinv.updinv (year, number, datei, cln, sum, vat, currency)
VALUES (:ai_year, :adec_invoice_num, :adt_inv, :adec_client, :adec_amount, 0.0, :as_currency) USING estma;
Приведённый код не есть хорошо. От толстого клиента надо избавляться по возможности... По-моему в последних версиях MYSQL можно писать процедуры. Декларьте процедуру и пусть инсерт происходит внутри данной процедуры...
из-за этого приложение падать не должно.

в коде "страшного" ничего не вижу.
пробуйте написать простейшее приложение с этим-же кодом.
если падает: проблема в драйвере.
если нет:
- не вызываете ли вы этот код в цикле (постоянный коннект/дисконнект может плохо сказываться)
- нет ли рукурсии ? (обычно при бесконечной рекурсии билдер тихо закрывается)
...
Рейтинг: 0 / 0
28.08.2007, 15:48
    #34758632
KOLCHOZ_POSTEVENT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с двумя базами
Destroy estma перед ретурном добавьте,на всякий,так сказать.
Триггерами база не болеет?
...
Рейтинг: 0 / 0
29.08.2007, 09:44
    #34760251
Mityay
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа с двумя базами
Большое спасибо всем откликнувшимся. Проблема разрешилась
установкой нового драйвера MySQL. Обычная история...
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Работа с двумя базами / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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