25.12.2008, 17:08 | #1 |
Участник
|
Выгрузка из ODBC
Привет всем!
Люди добрые, подскажите... Необходимо сделать выгрузку в DBF файл. Основные грабли, что необходимо выгружать число (Integer) БЕЗ знаков после запятой, а тип REAL с 2 знаками.... При создании структуры таблицы использование NUMERIC(12,0) // integer и NUMERIC (12,2) // real приводит к ошибке Кто сталкивался? Кто что расскажет? ........ case сellType::Number: sSQL += 'NUMERIC(12,0)' + #Comma; break; case сellType::Float: sSQL += 'NUMERIC(12,2)' + #Comma; break; ........... З.Ы. Драйвер менял.... Microsoft FoxPro VFP Driver (*.dbf) Microsoft dBase VFP Driver (*.dbf) пробывал.... |
|
25.12.2008, 17:45 | #2 |
Участник
|
|
|
25.12.2008, 17:50 | #3 |
Участник
|
Выдает ошибку
Ошибка. [Microsoft][ODBC dBase Driver] Syntax error in CREATE TABLE statement. CREATE TABLE mi48121212 (d_ot DATE,d_pr DATE,lic NUMERIC(12,0),n NUMERIC(12,0),r110 NUMERIC(12,0),r120 NUMERIC(12,0),r121 NUMERIC(12,0),r122 NUMERIC(12,0),r130 NUMERIC(12,0),r135 NUMERIC(12,0),r140 NUMERIC(12,0),r210 NUMERIC(12,0),r211 NUMERIC(12,0),r212 NUMERIC(12,0),r220 NUMERIC(12,0),r230 NUMERIC(12,0),r240 NUMERIC(12,0),r250 NUMERIC(12,0),r260 NUMERIC(12,0),r270 NUMERIC(12,0),r280 NUMERIC(12,0),r281 NUMERIC(12,0),r282 NUMERIC(12,0),r283 NUMERIC(12,0),r284 NUMERIC(12,0),un_n NUMERIC(12,0)) |
|
25.12.2008, 17:56 | #4 |
Moderator
|
А вы что за таблицу-то создаете? Где?
Например, у меня в Oracle ваш оператор сработал. Таблица создалась P.S. Надеюсь, вы не dBase-таблицу пытаетесь таким образом создать? P.P.S. Если задача разовая, то я бы вывел данные в Excel и сохранил как файл DBF (любой желаемой версии). А хоть бы и не разовая! Можно в таком виде автоматизировать полностью до конца. |
|
25.12.2008, 18:04 | #5 |
Участник
|
Именно BDF файл я и хочу создать
код, примерно, следующий: LoginProperty loginProperty = new LoginProperty(); OdbcConnection odbcConnection; Statement statement; ................... ................... odbcConnection = new OdbcConnection(loginProperty); statement = odbcConnection.createStatement(ResultSetType::ForwardOnly, ResultSetConcurrency::Updatable); statement.executeUpdate(sSQL); // в переменной sSQL сформирован запрос на создание таблицы, указанный ниже.... |
|
25.12.2008, 18:05 | #6 |
Участник
|
+loginProperty.setOther(strFmt('DSN=%1;DefaultDir=%2', #datasourceName, filePath));
odbcConnection = new OdbcConnection(loginProperty); statement = odbcConnection.createStatement(ResultSetType::ForwardOnly, ResultSetConcurrency::Updatable); |
|
25.12.2008, 18:42 | #7 |
Moderator
|
Да, действительно можно... Виноват! Ступил!
А вот почитайте: Экспорт в DBF количество символов. Да и вообще запустите поиск по слову DBF |
|
25.12.2008, 18:52 | #8 |
Роман Долгополов (RDOL)
|
могу ошибаться ибо все уже забыто давно и сильно, но кажись для dBase нельзя быдо уточнять что же там за numeric. попробуйте использовать NUMERIC без дальнейшей специфкации точности - безо всяких цифр и скобок. ну и сотвественно целый/нецелый там хранится решать вашемо приложению
|
|
25.12.2008, 18:58 | #9 |
Участник
|
Попробуйте использовать типы данных Integer и Double
|
|
25.12.2008, 19:07 | #10 |
Участник
|
При использовании Integer или Double все работает, но данные выгружаеются не так, как хотелось бы....
Integer вообще выгружается с 5 ! знаками после запятой. . Почему? Объяснить не могу (Тип поля описан как Integer) по поводу NUMERIC без точности тоже работает, только выгрузка опять же идет не так как надо |
|
|
Похожие темы | ||||
Тема | Ответов | |||
Проблема с ODBC? | 1 | |||
ODBC и SQL 2005 | 15 | |||
ODBC/ADO | 6 | |||
Чтение данных из SQL Server через ODBC. Не работает в 3-х звенке | 7 | |||
ODBC foxpro driver | 3 |
|