powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Импорт из Excel (ibec_ImportData) не работает с полями в кавычках
4 сообщений из 4, страница 1 из 1
Импорт из Excel (ibec_ImportData) не работает с полями в кавычках
    #39224488
Выполняем импорт в таблицу БД Firebird 1.5 данных из файла XLS с помощью диалога "Import data". Копируем со вкладки "IBEBlock" диалога "Import data" текст блока, который можно было бы использовать для импорта без диалога. Запускаем его из окна "SQL Редактор". Если в целевой таблице Firebird имена полей требуют кавычек (например, содержат буквы нижнего регистра), то при импорте с помощью данного IBEBlock выдаётся сообщение об ошибке в вызове функции ibec_ImportData:
Column does not belong to referenced table.
Dynamic SQL Error.
SQL error code = -206.
Column unknown.
Имя поля, вызвавшего ошибку, отображается в конце сообщения в верхнем регистре, что наводит на мысль о том, что регистр букв в имени поля не был сохранён при импорте. Действительно, если для целевой таблицы указать имена полей, не требующие кавычек, импорт с помощью ibec_ImportData выполняется без ошибок.
...
Рейтинг: 0 / 0
Импорт из Excel (ibec_ImportData) не работает с полями в кавычках
    #39224886
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Многабукаф, а главного - структуры целевой таблицы и ibeblock'а нет.
...
Рейтинг: 0 / 0
Импорт из Excel (ibec_ImportData) не работает с полями в кавычках
    #39226402
IBExpert,

Импортируемый файл XLS:
Поле 1Поле 21ААА2БББ3ВВВ
Структура целевой таблицы:
CREATE TABLE E180 (
"Fld1" VARCHAR(30),
"Fld2" VARCHAR(30)
);

Блок, сгенерированный IBExpert’ом:
execute ibeblock
as
begin
cbb = 'execute ibeblock (RecCount variant)
as
begin
if (ibec_Mod(RecCount, 100) = 0) then
ibec_Progress(RecCount || '' records imported.'');
end;';

DB = ibec_CreateConnection(__ctFirebird, 'DBName="Ib4Test";
ClientLib=C:\Work\FirebirdBinLnk\fbclient.dll;
User=sysdba; Password=masterkey; Names=WIN1251; SqlDialect=3;');
try
ibec_UseConnection(DB);

-- Dropping target table if exists
if (exists(select rdb$relation_name from rdb$relations where rdb$relation_name = 'E180')) then
begin
execute statement 'drop table E180';
commit;
end;


-- Creating target table
execute statement 'CREATE TABLE E180 (
"Fld1" VARCHAR(30),
"Fld2" VARCHAR(30))';
commit;

sMappings = '"Fld1"="Поле 1";' +
'"Fld2"="Поле 2"';

Res = ibec_ImportData(DB, 'E180', __impExcel, 'C:\Work\ErrorDemos\IbExpert\180\Error180.xls', '',
'RowFirst=2; RowLast=2147483647; RowNames=1;
DateOrder=DMY; DateSeparator="."; TimeSeparator=":"; DecimalSeparator=",";', :sMappings, cbb);

if (Res is not null) then
ibec_ShowMessage(Res || ' records were imported successfully.');
finally
ibec_CloseConnection(DB);
end;

end

Сообщение об ошибке при выполнении блока в редакторе SQL:
Column does not belong to referenced table.
Dynamic SQL Error.
SQL error code = -206.
Column unknown.
FLD1.
At line 1, column 19.
...
Рейтинг: 0 / 0
Импорт из Excel (ibec_ImportData) не работает с полями в кавычках
    #39229283
IBExpert
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Исправил.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / IBExpert [игнор отключен] [закрыт для гостей] / Импорт из Excel (ibec_ImportData) не работает с полями в кавычках
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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