Имя: Пароль:
1C
 
Запись данных из ДБФ с мемо полями
0 child
 
01.11.06
15:31
Всем привет.
Помогите пожалуйста сделать выборку из ДБФ-ки, при этом дать возможность преобразовать мемо поле в строковое.
Заранее благодарен.
1 Долорес И
 
01.11.06
15:35
(0)штатно из 1с ты никак до мемо не достучишься
2 child
 
01.11.06
15:36
(1) Да мне хоть не из 1С. Хоть средствами офиса иль винды
ЗЫ: Про то что 1С с такими полями не работает - знаю
3 uriah
 
01.11.06
15:37
А мемо поле ДБФ-ки преобразовать?
4 child
 
01.11.06
15:38
(3) Как?
5 Долорес И
 
01.11.06
15:38
ну перетяни инфу из мемо-полей куда -нить еще(например, в длинное строковое поле. илиЮ если не влезет, кусками в отдельную дбф), а потом обрабатывай
6 child
 
01.11.06
15:38
(+4) и чем?
7 Долорес И
 
01.11.06
15:39
(6)фокспром, например
8 child
 
01.11.06
15:40
(7) Эх... гдеж взять такое чудо...
9 Долорес И
 
01.11.06
15:42
(8)сейчас нет под рукой, но помню, как-то находила в сети когда понадабилось
фокс 2.6, он вряд ли много весит
10 uriah
 
01.11.06
15:42
(8)Есть масса программ для просмотра и редактирования файлов формата dbf
11 child
 
01.11.06
15:58
(9) Четва у мя не получается. при смене типа поля - данные теряются. А как сделать так чтоб они не терялись - ума не приложу
ЗЫ: Простите за групые вопросы - забыл ужо как с фоксом работать.
12 child
 
01.11.06
16:19
типа ап
13 Klv
 
01.11.06
16:35
Сейчас скину кусок кода. Когда-то из Паруса переносила. Через ADO. Принцип в интернете где-то есть.
14 child
 
01.11.06
16:37
Буду очень благодарен
15 Klv
 
01.11.06
16:39
Процедура ПолучитьАдрес()
Орг = СоздатьОбъект("Справочник.Организации");
ФЛица = СоздатьОбъект("Справочник.ФизЛица");
Path="D:\Base0605"; //Путь к папке с файлами DBF
 

DBConn = CreateObject("ADODB.Connection");
DBConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;" +
                 "Data Source=" + Path + ";" +
                 "Extended Properties=""DBASE IV;"";");
 

//Делаем выборку
Persons = DBConn.Execute("Select * from [OrgBase4#DBF]");
DBConn.КодоваяСтраница(0);
Пока Persons.EOF=0 Цикл //Цикл по записям DBF
   
  Адрес=   Persons.Fields("Note").value;
  ИД =  Persons.Fields("RN").value;
  Тип = Persons.Fields("TYPE").value;
  Если ПустоеЗначение(Прав(Адрес,СтрДлина(Адрес)-7))=0 Тогда
  Если Тип ="2" Тогда
     Спр= СоздатьОбъект("Справочник.ФизЛица");
     Спр.ВыбратьЭлементы();
       Пока Спр.ПолучитьЭлемент()=1 Цикл
           Если Спр.ИД=ИД Тогда
               Если КодСимв(Прав(Спр.ИД,1))= КодСимв(Прав(ИД,1)) Тогда
               АдресПрописка = Адрес;    
               КонецЕсли;
           КонецЕсли;
       КонецЦикла;
  Иначе
     Спр=СоздатьОбъект("Справочник.Организации");
      Спр.ВыбратьЭлементы();
       Пока Спр.ПолучитьЭлемент()=1 Цикл
           Если Спр.ИД=ИД Тогда
               Если КодСимв(Прав(Спр.ИД,1))= КодСимв(Прав(ИД,1)) Тогда
               ЮрАдресОрганизации= Адрес;    
               КонецЕсли;
           КонецЕсли;
       КонецЦикла;
       
  КонецЕсли;
 
  КонецЕсли;
  Persons.MoveNext(); //Переходим к след. записи DBF
КонецЦикла;

DBConn.Close(); //Закрываем соединение
                 

КонецПроцедуры
16 Klv
 
01.11.06
16:40
Здесь вся процедура, надеюсь основное поймете
17 child
 
01.11.06
16:41
gfcb,
18 child
 
01.11.06
16:41
(+17) Спасибо
19 child
 
01.11.06
16:53
(16) Чет ва у мя ошибка какаято непонятная
Microsoft JET Database Engine: Строка 'D:\Publick\PLDOK.DBF' задает ошибочный путь.  Проверьте, что путь задан правильно и имеется подключение
Че ему надо?
20 FreeFin
 
01.11.06
17:00
(19) Закрыть PLDOK.DBF, открытую в ... а я не знаю чем.
21 child
 
01.11.06
17:00
(20) Усе закрыто
22 Klv
 
01.11.06
17:04
Где путь имя DBF не пишешь. Там путь к папке
23 FreeFin
 
01.11.06
17:05
Попробуй
Open("Provider=Microsoft.Jet.OLEDB.4.0;" + "Data Source="+ИмяКаталога+";Extended Properties=""DBASE IV;"";");
Т.е Не полный путь с именем файла а каталог
24 child
 
01.11.06
17:07
(22,23) Пасиб, с этим справился. Теперь другая байда
Persons = DBConn.Execute("Select * from [PLDOK#DBF]");
{C:\DOCUMENTS AND SETTINGS\TOLICK\РАБОЧИЙ СТОЛ\123.ERT(13)}: Microsoft JET Database Engine: Внешняя таблица не имеет предполагаемый формат.
25 child
 
01.11.06
17:14
(+24) На ДБф-ке без полей типа "мемо" усе нормуль, а тама где эти мемо поля есть - косяк
26 FreeFin
 
01.11.06
17:19
(25) Читани:
http://www.code-vb.com/fragments/Data_Access_Ado.htm
про Read Memo
27 Klv
 
01.11.06
17:22
Переносила точно из  memo. Без полей этого типа все проще и ADO  мне никогда не требовалось. Попробуй  свй dbf открыть любым dbf навигатором и пересохранить. Обрати внимание на формат, когда сохраняешь.Тут что-то с формаом твоей dbf не то.
28 child
 
01.11.06
17:45
(27) Пасиб мил человек. Все дело было и вправду в формате ДБФ-ки. У нее формат был не dBase4, а FoxPro
29 smaharbA
 
01.11.06
17:48
можно и штатно (почти)
30 child
 
01.11.06
18:04
(29) Ну подскажи - буду знать на будущее
Закон Брукера: Даже маленькая практика стоит большой теории.