|
Импорт из Excel (ibec_ImportData) не работает с полями в кавычках
|
|||
---|---|---|---|
#18+
Выполняем импорт в таблицу БД 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 выполняется без ошибок. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2016, 10:48 |
|
Импорт из Excel (ibec_ImportData) не работает с полями в кавычках
|
|||
---|---|---|---|
#18+
Многабукаф, а главного - структуры целевой таблицы и ibeblock'а нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2016, 15:17 |
|
Импорт из Excel (ibec_ImportData) не работает с полями в кавычках
|
|||
---|---|---|---|
#18+
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. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.04.2016, 10:45 |
|
|
start [/forum/topic.php?fid=42&fpage=23&tid=1599306]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
40ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 144ms |
0 / 0 |