Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Записать значение в поле DBF файла с типом MEMO

Записать значение в поле DBF файла с типом MEMO
Я
   Так мало знающий
 
26.10.18 - 08:44
Добрый день. Не получается записать значение в поле с типом Memo. Работу с файлами веду через OLE DB.

Вот создаю файл:

    Соединение = Новый COMОбъект("ADODB.Connection");
    Соединение.ConnectionString="Provider=vfpoledb.1;data source="+КаталогДляВыгрузки+";";
    //"Driver={Microsoft Visual FoxPro Driver};"

    Соединение.CursorLocation = 3// client side

    Соединение.Mode = 3// adModeReadWrite

    Соединение.Open();
    Соединение.Execute("create table Calculation.dbf (CODE2 C(10) NOT NULL, INFO M NOT NULL)");

Вот таким кодом пытаюсь записать:
ЗаписьМ = ЗаписатьДанныеВФорматеXML(Секция,Кофе);

    Соединение.Execute("insert into Calculation.dbf (CODE2, INFO) values ('"+Строка(Кофе.Код)+"', REPLICATE('"+ЗаписьМ+"',100)");

Значение реквизита "ЗаписьМ" строка, длинна которой может быть больше 254 символов.
 
 
   Так мало знающий
 
1 - 26.10.18 - 08:46
Ошибка:

Произошла исключительная ситуация (Microsoft OLE DB Provider for Visual FoxPro): Command contains unrecognized phrase/keyword.
   asady
 
2 - 26.10.18 - 08:52
(0)
а вот так ошибка есть?
Соединение.Execute("insert into Calculation.dbf (CODE2, INFO) values ('"+Строка(Кофе.Код)+"', REPLICATE('1234567890',100)");
   Так мало знающий
 
3 - 26.10.18 - 08:57
(2) Да. Вот: Произошла исключительная ситуация (Microsoft OLE DB Provider for Visual FoxPro): Syntax error.
   Так мало знающий
 
4 - 26.10.18 - 08:59
(2) Исправил синтаксическую. Ошибок не выдало, но и в поле "INFO" значения нет
   Так мало знающий
 
5 - 26.10.18 - 09:00
(2) Вру. Есть значение
   Так мало знающий
 
6 - 26.10.18 - 09:02
(2) Только как мне записать мое значение. Как я понял в одинарных кавычках не может быть строка больше 254 символов, типа это константа.
   asady
 
7 - 26.10.18 - 09:10
(6) а так тоже ошибка?
Соединение.Execute("insert into Calculation.dbf (CODE2, INFO) values ('"+Строка(Кофе.Код)+"','"+ЗаписьМ+"')");
   Так мало знающий
 
8 - 26.10.18 - 09:16
(7) Да: Произошла исключительная ситуация (Microsoft OLE DB Provider for Visual FoxPro): Command contains unrecognized phrase/keyword.
   asady
 
9 - 26.10.18 - 09:27
(8) попробуй в строке подключения указать:
Extended properties=dBase IV
   Так мало знающий
 
10 - 26.10.18 - 09:31
(9) Он же вроде не поддерживает мемо поля, да и готовлю я их для загрузки в сервио, обмен с которым на этой библиотеке
 
 Рекламное место пустует
   asady
 
11 - 26.10.18 - 09:32
(8) вообще поиском ты видимо не пользовался совсем
Запись данных из ДБФ с мемо полями
   Так мало знающий
 
12 - 26.10.18 - 09:33
(11) Пользовался и эту тему видел. В ней вопрос о чтении, а запись не обсуждается
   asady
 
13 - 26.10.18 - 09:36
(12) тогда вот здесь почитай
http://www.delphimaster.net/view/3-51613
особенно пост 6
   Так мало знающий
 
14 - 26.10.18 - 10:02
(13) Если бы вот здесь дописали ответ, было бы самое то http://forum.foxclub.ru/read.php?46,546786,546830,quote=1
   Так мало знающий
 
15 - 26.10.18 - 11:15
А кто-то может подсказать как должен выглядеть текст команды с применением функции "APPEND MEMO"
   Так мало знающий
 
16 - 26.10.18 - 15:47
Как решение думаю пригодится и такой вариант:

    Соединение = Новый COMОбъект("ADODB.Connection");
    Соединение.ConnectionString="Provider=vfpoledb.1;data source="+КаталогДляВыгрузки+";";
    //"Driver={Microsoft Visual FoxPro Driver};"

    Соединение.CursorLocation = 3// client side

    Соединение.Mode = 3// adModeReadWrite

    Соединение.Open();
    Соединение.Execute("create table Calculation.dbf (CODE2 C(10) NOT NULL, INFO M NOT NULL)");
    
    Command = Новый COMОбъект("ADODB.Command");
    Command.ActiveConnection = Соединение;
    Command.CommandText = "Insert Into Calculation (CODE2,INFO) Values ('"+Строка(Кофе.Код)+"',?)";
    
    param = Новый COMОбъект("ADODB.Parameter");
    param.Value = ЗаписьМ//Текст или строка, значение которой может быть больше 254 символов

    param.Name = "PINFO";
    param.Type = 129;//adChar

    param.Size = 10000;
    
    Command.Parameters.Append(param);
    Command.Execute();
    Соединение.Close();
   Сияющий в темноте
 
17 - 28.10.18 - 18:57
Через параметры можно все,а еще можно открыть таблицу напрямую и через RecordSet в нее писать.

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует