Имя: Пароль:
1C
 
Вопрос к vde69 по ADO
0 AcaGost
 
30.12.08
10:12
Гуру подскажи как через ADO создать поле в DBF файле длиной двойной int
1 ТелепатБот
 
гуру
30.12.08
10:12
2 vde69
 
30.12.08
10:13
на своем компе найди файл adovbs.inc

для начала попробуй найти там свой тип
3 AcaGost
 
30.12.08
10:22
Const adTinyInt = 16
Const adSmallInt = 2
Const adInteger = 3
Const adBigInt = 20
Const adUnsignedTinyInt = 17
Const adUnsignedSmallInt = 18
Const adUnsignedInt = 19
Const adUnsignedBigInt = 21

Какой из этих?
4 vde69
 
30.12.08
10:27
(3) это вопрос который я ТЕБЕ задал в (2), когда определишчся с типом, реши чего тебе надо: добавить колонку или значение поля, а то из 0 я этого не понял
5 AcaGost
 
30.12.08
10:33
(4) Перефразирую.
Мне нужно создать числовое поле, целое длиной 20 знаков.
В него будет записываться код лота (число), длиной от 7 до 20 знаков
6 vde69
 
30.12.08
10:47
создать новую таблицу с указаным типом типа простым выполнением:

CREATE TABLE [dbo].[Data_File] (
   [Step] [int] NOT NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

реструктуризацию я не делал не разу


вот полезная ссылка по обьектной модели
http://www.interface.ru/home.asp?artId=16136
7 AcaGost
 
30.12.08
10:51
(6) Вопрос от ламера. Из указаных типов в (3) какая максимальная длина целого числа возможна?
8 vde69
 
30.12.08
10:56
вообще adNumeric с указанием количества знаков
только не везде подерживается
9 AcaGost
 
30.12.08
11:01
(8) Значит придется брать "болванку" (файл с полями, но без записей) и записывать туда.
Благодарю за консультацию!
С наступающим!
10 vde69
 
30.12.08
11:03
(9) ты-бы каким нибудь конструктором попробовал сделать.

зы
и тебя с НГ
11 AcaGost
 
30.12.08
11:05
(10) "болванку" мне скинули
12 AcaGost
 
30.12.08
21:38
(10) Ни напрямую, ни через ADO не работает
13 vde69
 
30.12.08
22:23
(12) если не к спеху пришли болванку, посмотрю
14 AcaGost
 
30.12.08
22:26
(13) Позарез
Мыло дай
15 vde69
 
30.12.08
22:27
мог-бы и сам найти..

vde69 гав mail.ru
16 AcaGost
 
30.12.08
22:35
(15) Отправил.
Голова уже не варит.  :-(
17 vde69
 
30.12.08
22:59
у тебя все поля с челым типом имеют длину 4байта, в чем конкретно проблеммы?
18 AcaGost
 
30.12.08
23:02
Каким способом прочитать/записать из 1С7.7
19 AcaGost
 
30.12.08
23:06
И еще. В поле с типом "Дата" запись идет, а прочитать не могу.
20 AcaGost
 
30.12.08
23:48
21 vde69
 
31.12.08
00:19
ну вот и дорвался, похоже это фоксовые файлы (при чем не совсем стандартные), или драйвер нужен фоксовый или попробуй восьмерочный "XBase" (он вроде берет их нормально)

вот видимо твой случай http://www.sql.ru/forum/actualthread.aspx?bid=1&tid=39400&pg=2

я заморачиваться с установкой фоксового драйвера не хочу
22 vde69
 
31.12.08
00:22
Через Jet можно работать только с тем, что перечислено на машине в

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\X.X\ISAM Formats

И при использовании к фоксу драйверов dBase будет ошибка
23 Garykom
 
гуру
31.12.08
01:45
(21) зачем фоксовый драйвер то? если не нужна скорость то можно и средствами 1С через ВК (binfiles и т.д.), формат DBF довольно простой реализовать не проблема.

ЗЫ
Делал как раз для фокса чтобы прочитать индексные Character поля содержащие символы с кодами по ASCII 0-31.
Это так программер на FoxPro 2.6 сделал в старой проге и иным способом я никак не мог нормально прочитать и преобразовать в числа эти строковые индексы.
24 AcaGost
 
31.12.08
07:23
(23) А по подробней?
25 Тьма
 
31.12.08
08:50
(24)Сформулируй полностью задачу - то тебе нужно сделать. А то ты по кусочкам уже четыре ветки один вопрос задаешь. Выложи свою "болванку" в общий доступ - вряд ли формат дбф-а является коммерческой тайной.
26 vde69
 
31.12.08
09:11
(25) там файлы от "визуал фокспро"
(23) зачем так сложно? собствено решение есть:

1. использовать 1с 8.х и обьект "XBase" - там все нормально, делал пару раз
2. использовать драйвер jet и зарегить HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\X.X\ISAM Formats


думаю второй способ проще, тек-как можно сделать пакетник для этого и все машинки пройти.
27 AcaGost
 
31.12.08
09:40
(26) 2 поподробней пожалуйста
28 AcaGost
 
31.12.08
09:44
(25) там файлы от "визуал фокспро" последней версии.
Microsoft_Jet не понимает формат
29 Garykom
 
гуру
31.12.08
09:49
(26) может и сложно (кстати не в использовании а в написании только) зато это единственный способ выполнятить некоторые операции с dbf файлом нестандартного формата или кривого.

(24) А поподробнее что именно нужно то? Разве нельзя через XBase в 7.7 создать DBF файл с длиной числового поля 20?
Результат после:

Файл = СоздатьОбъект("XBase");
Файл.КодоваяСтраница(0);
Файл.ДобавитьПоле("Code","N",20,0);
Файл.СоздатьФайл(ИмяФайлаДБФ,);              
Файл.ЗакрытьФайл();

Какой? Если открыть и посмотреть к примеру DBFNavigator?
30 AcaGost
 
31.12.08
09:55
(25) У нас как всегда. Склад уже получает лекарства для льготного обеспечения в 2009 году. А формат файлов отчетности только позавчера скинули. В 2008 году это был DBF IV, а в 2009 - DBF V. От этого вся и котовасия.
31 AcaGost
 
31.12.08
09:57
(29) В этом виде я послал на пробу.
Сейчас его отправят в Москву на проверку.
32 Garykom
 
гуру
31.12.08
10:02
(30) Наш человек, можно сказать коллега (тоже ДЛО точнее ОНЛС занимаюсь со стороны аптечной сети)
Кстати у нас пока никакого изменения форматов не происходит в 2009 году.
33 Тьма
 
31.12.08
10:10
(30)Выложи образец. И что "не получается"? Что делаешь ты, что отвечает 1С? А то "у меня каждую весну в подвале происходит стук, как он происходит?" (с)
34 AcaGost
 
31.12.08
10:14
http://slil.ru/26498857
Этот надо "прочитать"
35 AcaGost
 
31.12.08
10:15
А этот создать или заполнить
http://slil.ru/26498859
36 pectopatop
 
31.12.08
10:18
.
37 Garykom
 
гуру
31.12.08
10:24
(34) Нда через стандартный XBase не читает, бинарно читает кстати.
Только с полями DateTime заморочки в низкоуровневом чтении, не предусмотрено у меня такого формата.
38 Garykom
 
гуру
31.12.08
10:37
(0)
AcaGost мыло скажи, пришлю свою нетленную обработку поразбираешься, но эти непонятные интегеры в нормальный вид она не переводит и дататаймы тоже.
39 AcaGost
 
31.12.08
10:41
(38) gvg52@yandex.ru
40 Garykom
 
гуру
31.12.08
10:46
(39) отправил
41 AcaGost
 
31.12.08
10:54
(40) Благодарю
42 vde69
 
31.12.08
11:03
попробуй: (и строку подключения поменяй на jet для 5 версии)


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\ISAM Formats\dBase 5.0]
"Engine"="Xbase"
"ExportFilter"="dBASE 5 (*.dbf)"
"ImportFilter"="dBASE 5 (*.dbf)"
"CanLink"=hex:01
"OneTablePerFile"=hex:01
"IsamType"=dword:00000000
"IndexDialog"=hex:01
"IndexFilter"="Индекс dBASE (*.ndx;*.mdx)"
"CreateDBOnExport"=hex:00
"ResultTextImport"="Импорт данных из внешнего файла в текущую базу данных. Исправления данных текущей базы данных не будут приводить к изменениям внешнего файла."
"ResultTextLink"="Создание таблицы текущей базы данных, связанной с внешним файлом.  Исправления данных текущей базы данных будут приводить к изменениям внешнего файла."
"ResultTextExport"="Экспорт данных текущей базы данных в файл dBase 5.  При экспорте в существующий файл его данные будут перезаписаны."
"SupportsLongNames"=hex:00
43 AcaGost
 
31.12.08
11:12
Вопрос ламера - Как добраться до реестра?
44 Тьма
 
31.12.08
11:17
Вот здесь строка подключения http://www.carlprothman.net/Default.aspx?tabid=87#OLEDBProviderForVisualFoxPro
Вот здесь OLE DB Provider http://www.microsoft.com/downloads/details.aspx?FamilyID=e1a87d8f-2d58-491f-a0fa-95a3289c5fd4&DisplayLang=en
А это чтение из файла
 DBConn = CreateObject("ADODB.Connection");
 DBConn.Open("Provider=vfpoledb;"+
          "Data Source=d:\1с\Goscontract.dbf;"+
          "Mode=ReadWrite|Share Deny None;"+
          "Collating Sequence=MACHINE;"+
          "Password='';");          
 Persons = DBConn.Execute("Select * from [Goscontract]");
 Пока Persons.EOF=0 Цикл //Цикл по записям DBF
   Имя=    Persons.Fields("NGK").value;
   Город=  Persons.Fields("DT").value;
   Телефон=Persons.Fields("OWNER").value;
   Zip=    Persons.Fields("TIPLG").value;
   Сообщить("Имя="+Имя+" Город="+Город+" Телефон="+Телефон+" Zip="+Zip);
   Persons.MoveNext(); //Переходим к след. записи DBF
 КонецЦикла;
 DBConn.Close(); //Закрываем соединение
45 vde69
 
31.12.08
11:18
(43) сохрание мой пост (кроме первой строки в файл с расширением reg) и выпони его,

только я не знаю, может ему файлы понадобяться а может и нет, но можешь просто из инетета установить "dBase 5.0"
46 Garykom
 
гуру
31.12.08
11:24
Наверно проще будет Visual FoxPro поставить и на нем конвертер наваять (можно и через OLE из 1С юзать фокс)
47 vde69
 
31.12.08
11:28
(46) смотря где надо будет юзать, а то устанавливать фоксовый драйвер в 500 торговых точках - геморно и где-то будет глючить.

Хотя я согласен, что это самое простое для 1 компа
48 AcaGost
 
31.12.08
11:30
(45)

"Engine"="Xbase"
"ExportFilter"="dBASE 5 (*.dbf)"
"ImportFilter"="dBASE 5 (*.dbf)"
"CanLink"=01
"OneTablePerFile"=01
"IsamType"=dword:00000000
"IndexDialog"=01
"IndexFilter"="Индекс dBASE (*.ndx;*.mdx)"
"CreateDBOnExport"=00
"ResultTextImport"="Импорт данных из внешнего файла в текущую базу данных. Исправления данных текущей базы данных не будут приводить к изменениям внешнего файла."
"ResultTextLink"="Создание таблицы текущей базы данных, связанной с внешним файлом.  Исправления данных текущей базы данных будут приводить к изменениям внешнего файла."
"ResultTextExport"="Экспорт данных текущей базы данных в файл dBase 5.  При экспорте в существующий файл его данные будут перезаписаны."
49 AcaGost
 
31.12.08
11:31
(46) Ставить надо в разных местах
50 vde69
 
31.12.08
11:34
(48) ты не все скопировал

начало:
Windows Registry Editor Version 5.00




конец:
"SupportsLongNames"=hex:00
51 Тьма
 
31.12.08
11:35
(46)Достаточно ОЛЕ Провайдер установить. Он маленький.
52 vde69
 
31.12.08
11:41
(51) драйвер для ни один и тот-же "IDODBC32.DLL" (он вообще для всех драйверов DBF идет, включая парадохс) по этому можно обойтись только изменением реестра, только чеко конкретно ?
53 AcaGost
 
31.12.08
11:43
(44) Ну и светлая голова у тебя Тьма
Благодарю все прочиталось.
54 vde69
 
31.12.08
11:45
(53) ну слава богу :) теперь и НГ можно отмечать

зы
ответ был в (21), там по ссылке все описано
55 AcaGost
 
31.12.08
11:52
Ответ из Москвы
ДБФ 4 нормально загружается в базу
56 vde69
 
31.12.08
11:54
(55) LOL
блин всех на уши поставили...

только вот с чтением не понятно
57 AcaGost
 
31.12.08
12:42
(56) Как подсказал и разжевал Тьма , я сделал загрузку Госконтрактов и Лотов из ДБФ 5.
Но они за это время переделали Госконтракты и Лоты на ДБФ 4.   :-))
Так что сижу переделываю.  :-((
58 Garykom
 
гуру
31.12.08
13:48
(57) У вас что только один региональный склад или как там?
59 Garykom
 
гуру
31.12.08
13:49
(58)+ Если несколько организаций занимаются обеспечение ЛС то думаю у них тоже такие же проблемы возникли.
60 AcaGost
 
31.12.08
13:54
(58) Все аптеки области, лекарствами по программе ДЛО, снабжает один склад
61 AcaGost
 
31.12.08
13:57
+(60) Для них я доработал Аналит.Фармацию 4.0
62 Garykom
 
гуру
31.12.08
14:05
(60), (61) А в аптеках то что стоит для ввода рецептов?
63 smaharbA
 
31.12.08
14:07
нифига вы нафлудили
кстати С наступающим !
64 Garykom
 
гуру
31.12.08
14:08
(62)+ Мы в аптеки ставим новую конфу на 8-ке для учета и ДЛО и ДЗО.
65 kiruha
 
31.12.08
14:16
Какой нафиг ADO ???
1С уже несколько лет умеет напрямую работать с таблицами FoxPro(ДБФ) при помощи 1С++,
использовать команды и представления фокса , напрямую получать
таблицы в ТЗ без обращения к свойствам com (т.е. быстрее на порядки)
и многое другое
http://www.1cpp.ru/forum/YaBB.pl?num=1148038411/25#25
66 AcaGost
 
31.12.08
14:28
(62) Специализированная программа
67 Garykom
 
гуру
31.12.08
14:48
(66) Понятно что не типовая конфа от 1С ;)
Интересно просто какая программа и что хорошего в ней есть. Регион то кстати какой?
68 AcaGost
 
31.12.08
14:57
(67) На Фоксе.
Калуга