|  | 
|  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 | |||
| 
 |