Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Горячая тема (более 10 ответов) Хелп!! (число прочтений - 6557 )
U_zer
Экс-Участник


Хелп!!
01. Февраля 2007 :: 06:11
Печать  
Всем привет!

Есть файл dbf. Кодировка Dos.

1) Каким образом можно в select указать правильный вид кодировки, аналогично методу XBase КодоваяСтраница()? Строка коннекта: База.Соединение("Driver={Microsoft dBASE Driver (*.dbf)}; DriverID=277;Dbq="+Парам.ПолучитьЗначение(С));

2) Можно ли как-то этот файл загнать сразу в темп. таблицу текущего 1С соединения, а не через
табл. значений, а потом ВыполнитьSQL_изТЗ()? Это работает, но довольно долго.
  
Наверх
 
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Хелп!!
Ответ #1 - 01. Февраля 2007 :: 08:13
Печать  
прямо в select-у юзаю вот это и нормально работает...
  

Ламер, самый обычный ламер...    сначала мы ...   а потом мы ...
Наверх
wwwICQ  
IP записан
 
pavel_tr
Senior Member
****
Отсутствует



Сообщений: 279
Местоположение: Казань
Зарегистрирован: 14. Октября 2006
Пол: Мужской
Re: Хелп!!
Ответ #2 - 01. Февраля 2007 :: 08:19
Печать  
В 1) имхо просто надо использовать Fox'овый драйвер - проблем с кодировками быть не должно
  
Наверх
 
IP записан
 
U_zer
Экс-Участник


Re: Хелп!!
Ответ #3 - 01. Февраля 2007 :: 08:42
Печать  
pavel_tr писал(а) 01. Февраля 2007 :: 08:19:
В 1) имхо просто надо использовать Fox'овый драйвер - проблем с кодировками быть не должно


Пример строки подключения приведи плиз!
  
Наверх
 
IP записан
 
pavel_tr
Senior Member
****
Отсутствует



Сообщений: 279
Местоположение: Казань
Зарегистрирован: 14. Октября 2006
Пол: Мужской
Re: Хелп!!
Ответ #4 - 01. Февраля 2007 :: 08:59
Печать  
В статье по прямым запросам есть строка подключения http://www.1cpp.ru/forum/YaBB.pl?num=1148874473 + это будет полезно www.connectionstrings.com ; Подмигивание
  
Наверх
 
IP записан
 
U_zer
Экс-Участник


Re: Хелп!!
Ответ #5 - 01. Февраля 2007 :: 09:02
Печать  
Цитата:
прямо в select-у юзаю вот это и нормально работает...


С данным провайдером эта ф-ия не работает ..   Печаль
  
Наверх
 
IP записан
 
pavel_tr
Senior Member
****
Отсутствует



Сообщений: 279
Местоположение: Казань
Зарегистрирован: 14. Октября 2006
Пол: Мужской
Re: Хелп!!
Ответ #6 - 01. Февраля 2007 :: 09:07
Печать  
Цитата:
Цитата:
прямо в select-у юзаю вот это и нормально работает...


С данным провайдером эта ф-ия не работает ..   Печаль


Дык у VFP драйвера нет проблем с кодировкой, зачем юзать эту ф-ию?
  
Наверх
 
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Хелп!!
Ответ #7 - 01. Февраля 2007 :: 09:34
Печать  
Цитата:
Цитата:
прямо в select-у юзаю вот это и нормально работает...


С данным провайдером эта ф-ия не работает ..   Печаль

так я юзаю VFPro драйвера...
  

Ламер, самый обычный ламер...    сначала мы ...   а потом мы ...
Наверх
wwwICQ  
IP записан
 
pavel_tr
Senior Member
****
Отсутствует



Сообщений: 279
Местоположение: Казань
Зарегистрирован: 14. Октября 2006
Пол: Мужской
Re: Хелп!!
Ответ #8 - 01. Февраля 2007 :: 09:38
Печать  
И что, всё равно крякозябры? У меня с VFP проблемы исчезли. Может строку подключения не ту пишешь? Я юзаю подключение к DBF в Data transformation Services через dsn-файл, вот такой:

[ODBC]
DRIVER=Microsoft Visual FoxPro Driver
UID=
Deleted=No
Null=Yes
Collate=RUSSIAN
BackgroundFetch=Yes
Exclusive=No
SourceType=DBF
SourceDB=d:\bases\dbf

Collate=RUSSIAN - это как раз решение проблемы кодировки
  
Наверх
 
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Хелп!!
Ответ #9 - 01. Февраля 2007 :: 09:45
Печать  
pavel_tr писал(а) 01. Февраля 2007 :: 09:38:
И что, всё равно крякозябры? У меня с VFP проблемы исчезли.

не знаю как, но у меня в разных кодировках просто разные поля...
поэтому некоторые приходится конвертить...
  

Ламер, самый обычный ламер...    сначала мы ...   а потом мы ...
Наверх
wwwICQ  
IP записан
 
pavel_tr
Senior Member
****
Отсутствует



Сообщений: 279
Местоположение: Казань
Зарегистрирован: 14. Октября 2006
Пол: Мужской
Re: Хелп!!
Ответ #10 - 01. Февраля 2007 :: 09:52
Печать  
Раз так, VFP отменяется. Вся надежда на функцию
  
Наверх
 
IP записан
 
U_zer
Экс-Участник


Re: Хелп!!
Ответ #11 - 01. Февраля 2007 :: 10:10
Печать  
pavel_tr писал(а) 01. Февраля 2007 :: 09:52:
Раз так, VFP отменяется. Вся надежда на функцию


Не, не отменяется, так как в другом драйвере этой ф-ии  вообще нет.
  
Наверх
 
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Хелп!!
Ответ #12 - 01. Февраля 2007 :: 10:40
Печать  
Цитата:
pavel_tr писал(а) 01. Февраля 2007 :: 09:52:
Раз так, VFP отменяется. Вся надежда на функцию


Не, не отменяется, так как в другом драйвере этой ф-ии  вообще нет.

я юзаю последний 9-й набор...
  

Ламер, самый обычный ламер...    сначала мы ...   а потом мы ...
Наверх
wwwICQ  
IP записан
 
U_zer
Экс-Участник


Re: Хелп!!
Ответ #13 - 01. Февраля 2007 :: 11:01
Печать  
Цитата:
Цитата:
pavel_tr писал(а) 01. Февраля 2007 :: 09:52:
Раз так, VFP отменяется. Вся надежда на функцию


Не, не отменяется, так как в другом драйвере этой ф-ии  вообще нет.

я юзаю последний 9-й набор...


Кинь ссылку плиз!
  
Наверх
 
IP записан
 
Славко
Senior Member
****
Отсутствует



Сообщений: 467
Местоположение: Украина, г. Днепропетровск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Хелп!!
Ответ #14 - 01. Февраля 2007 :: 15:07
Печать  
Цитата:
Кинь ссылку плиз!

на микрософте или на том же MSDN поисковиком ишешь, я всегда так делаю, особенно если перестает шото работать иду сюда и качаю что необходимо...
искать тебе нужно 2 драйвера ODBC и OLE DB, исли они до сих пор не объедены в один
  

Ламер, самый обычный ламер...    сначала мы ...   а потом мы ...
Наверх
wwwICQ  
IP записан
 
U_zer
Экс-Участник


Re: Хелп!!
Ответ #15 - 02. Февраля 2007 :: 07:09
Печать  
Цитата:
Цитата:
Кинь ссылку плиз!

на микрософте или на том же MSDN поисковиком ишешь, я всегда так делаю, особенно если перестает шото работать иду сюда и качаю что необходимо...
искать тебе нужно 2 драйвера ODBC и OLE DB, исли они до сих пор не объедены в один


УРЯ!!!! Заработало!!!

Но вопрос 2) остается в силе. Может кто сталкивался?
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Хелп!!
Ответ #16 - 02. Февраля 2007 :: 08:35
Печать  
Цитата:
Цитата:
Цитата:
Кинь ссылку плиз!

на микрософте или на том же MSDN поисковиком ишешь, я всегда так делаю, особенно если перестает шото работать иду сюда и качаю что необходимо...
искать тебе нужно 2 драйвера ODBC и OLE DB, исли они до сих пор не объедены в один


УРЯ!!!! Заработало!!!

Но вопрос 2) остается в силе. Может кто сталкивался?


Если я тебя правильно понял, то примерно вот так:
Код
Выбрать все
		SELECT *
			FROM $Регистр.Продажи AS Прод

		into table temp_table 


temp_table.dbf - имя этого временного файла
  
Наверх
 
IP записан
 
U_zer
Экс-Участник


Re: Хелп!!
Ответ #17 - 02. Февраля 2007 :: 09:18
Печать  
JohnyDeath писал(а) 02. Февраля 2007 :: 08:35:
Если я тебя правильно понял, то примерно вот так:
Код
Выбрать все
		SELECT *
			FROM $Регистр.Продажи AS Прод

		into table temp_table 


temp_table.dbf - имя этого временного файла


У меня есть следующее:

Код
Выбрать все
Рез = База.Соединение("Driver={Microsoft Visual FoxPro te=Russian;NULL=YES;DELETED=NO;BACKGROUNDFETCH=YES;");
Если Рез <> 0 Тогда
     ИмяФайла=СтрЗаменить(Парам.ПолучитьЗначение(С+1),".dbf","");
     Запрос = СоздатьОбъект("ODBCRecordSet");
     Запрос.УстБД(База);
     ТабСФ = Запрос.ВыполнитьИнструкцию("select
			 |D.MNFNMR as MNFNMR,
	   |D.DRUGTXT as DRUGTXT,
     	   |D.SERNM as SERNM,
	   |D.LETTERSNR as LETTERSNR,
	   |D.LETTERSDT as LETTERSDT,
		 |D.QUALNMR as QUALNMR
	   |from "+ИмяФайла+" D
	   |");
	База.Закрыть()
КонецЕсли;
Запрос = СоздатьОбъект("ODBCRecordSet");
Запрос.Выполнить("delete from dbo.BrackT");
ТЗ = "
|insert dbo.BrackT (MNFNMR, DRUGTXT, SERNM, LETTERSNR, LETTERSDT, QUALNMR) Values(?,?,?,?,?,?)";
Если Запрос.Подготовить(ТЗ) = 1 Тогда
    Запрос.ВыполнитьSQL_изТЗ(ТабСФ);
КонецЕсли;
 



Хотелось бы это как-то объединить в 1 селект/инсерт. Если это возможно.
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Хелп!!
Ответ #18 - 02. Февраля 2007 :: 09:42
Печать  
Ну примерно так:
Код
Выбрать все
select
	|D.MNFNMR as MNFNMR,
	|D.DRUGTXT as DRUGTXT,
	|D.SERNM as SERNM,
	|D.LETTERSNR as LETTERSNR,
	|D.LETTERSDT as LETTERSDT,
	|D.QUALNMR as QUALNMR
	|from "+ИмяФайла+" D
	|into table BrackT
	|"); 


В результате появится файл с именем BrackT.dbf
На ОДБЦ не проверял, поэтому не знаю. Рекомендую использовать ОЛЕДБ: и быстрее и возможностей побольше.
  
Наверх
 
IP записан
 
U_zer
Экс-Участник


Re: Хелп!!
Ответ #19 - 02. Февраля 2007 :: 09:44
Печать  
Да у меня база SQL.
Я как раз и пытаюсь вычитать данные из dbf файла и засунуть их в SQL таблицу.
Таблицу уже создал в базе. Нафиг же мне второй дбф файл-то?
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать