Clarion и Firebird

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
George
Активист
Сообщения: 111
Зарегистрирован: 04 Август 2009, 10:48
Благодарил (а): 2 раза

Clarion и Firebird

Сообщение George »

Помогите начинающему.
Clarion 8.0.8973
Firebird через ODBC.

Надо добавлять в цикле записи.
Если это делать при помощи ADD(file), получается очень долго.
Конструкция типа file{PROP:SQL} = 'INSERT INTO file VALUES (field1,field2)' выдает ошибку 'File System Error'.
BOB
Ветеран
Сообщения: 336
Зарегистрирован: 17 Июль 2005, 5:43

Re: Clarion и Firebird

Сообщение BOB »

'INSERT INTO file VALUES (field1,field2)'
'INSERT INTO file (field1,field2) VALUES (value,value)'
George
Активист
Сообщения: 111
Зарегистрирован: 04 Август 2009, 10:48
Благодарил (а): 2 раза

Re: Clarion и Firebird

Сообщение George »

Не прооходит.
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3289
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Re: Clarion и Firebird

Сообщение Дед Пахом »

Проверьте, что возвращает FILEERROR(). Да и неплохо бы сделать SETCLIPBOARD(file{PROP:SQL}) и выполнить скрипт непосредственно в какой-нибудь среде для FIREBIRD (я использую IBExpert, DbWorkbench, Firebird Maestro) для проверки корректности кода.
С уважением, ДП
BOB
Ветеран
Сообщения: 336
Зарегистрирован: 17 Июль 2005, 5:43

Re: Clarion и Firebird

Сообщение BOB »

Не прооходит.
Стринговые значения и даты (для mssql) должны быть в кавычках . Лучше бы привели реальный код .
George
Активист
Сообщения: 111
Зарегистрирован: 04 Август 2009, 10:48
Благодарил (а): 2 раза

Re: Clarion и Firebird

Сообщение George »

Спасибо всем за помощь. Вроде все получилось.
Команда INSERT заработала.
Однако это не решило главной проблемы - время загрузки данных не только не уменьшилось, а наоборот увеличилось.
В чем может быть дело ?
BOB
Ветеран
Сообщения: 336
Зарегистрирован: 17 Июль 2005, 5:43

Re: Clarion и Firebird

Сообщение BOB »

Вы же пишете
Firebird через ODBC
ну так и пользуйте ODBC api .
У ODBC api свои команды и своя скорость . Найдите файл ODBC.INC и подключите odbcx.lib.
George
Активист
Сообщения: 111
Зарегистрирован: 04 Август 2009, 10:48
Благодарил (а): 2 раза

Re: Clarion и Firebird

Сообщение George »

А можно пример (если не трудно) !
George
Активист
Сообщения: 111
Зарегистрирован: 04 Август 2009, 10:48
Благодарил (а): 2 раза

Re: Clarion и Firebird

Сообщение George »

Конструкция типа SQLPrepare(hstmt#,'INSERT INTO osmena ...',cbSqlStr#) дает ощибку "No matching prototype available", указывая на первую скобку.
В чем может быть дело ?
BOB
Ветеран
Сообщения: 336
Зарегистрирован: 17 Июль 2005, 5:43

Re: Clarion и Firebird

Сообщение BOB »

Я уже пару лет не работаю с win , могу приблизительно .

Код: Выделить всё

aaaa   procedure()
hdbc               LONG
HSTMT           LONG
OutStr            cstring(255)
      code
           hdbc = file{PROP:HDBC} !у открытого файла берем hdbc
           a#     = SQLAllocStmt(hdbc, hstmt) !делаем hstmt
           a#     = SQLFreeStmt(hstmt, SQL_CLOSE) ! SQL_CLOSE и тд описано в odbc_equ.inc надо подключить
           a#     = SQLFreeStmt(hstmt, SQL_RESET_PARAMS)
           OutStr = 'insert into....'' 
           a#     = SQLExecDirect(hstmt, OutStr, SQL_NTS) ! выполняем
По моему где-то так , а вообще на форуме есть ветка mav ее ведет специалист по odbc .
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3289
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Re: Clarion и Firebird

Сообщение Дед Пахом »

Не туда Вас занесло, не нужен никакой ODBC API (хоть я им и пользуюсь регулярно :-)).
Если задача состоит в быстром копировании, то надо просто сформировать правильный sql INSERT, который одним махом загрузит всё в БД.
С уважением, ДП
George
Активист
Сообщения: 111
Зарегистрирован: 04 Август 2009, 10:48
Благодарил (а): 2 раза

Re: Clarion и Firebird

Сообщение George »

Дед Пахом писал(а):Не туда Вас занесло, не нужен никакой ODBC API (хоть я им и пользуюсь регулярно :-)).
Если задача состоит в быстром копировании, то надо просто сформировать правильный sql INSERT, который одним махом загрузит всё в БД.
Дело в том, что исходная таблица TPS ...
gromov
Старожил
Сообщения: 280
Зарегистрирован: 11 Февраль 2009, 8:41
Откуда: г. Анапа
Поблагодарили: 3 раза

Re: Clarion и Firebird

Сообщение gromov »

Купи у Андрея MAV и будет тебе счастье. Я, как стал его использовать, всякие TPS и DAT забыл, как страшный сон.
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3289
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 15 раз
Поблагодарили: 49 раз
Контактная информация:

Re: Clarion и Firebird

Сообщение Дед Пахом »

George писал(а):Дело в том, что исходная таблица TPS ...
Какая разница, в каком формате исходные данные? Вам-то нужен INSERT в целевую SQL таблицу, ведь так?
С уважением, ДП
George
Активист
Сообщения: 111
Зарегистрирован: 04 Август 2009, 10:48
Благодарил (а): 2 раза

Re: Clarion и Firebird

Сообщение George »

Какая разница, в каком формате исходные данные? Вам-то нужен INSERT в целевую SQL таблицу, ведь так?
А как это сделать ?
Ответить