|   |   | 
| 
 | Записать значение в поле DBF файла с типом MEMO | ☑ | ||
|---|---|---|---|---|
| 0
    
        Так мало знающий 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. | |||
| 2
    
        asady 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 символов, типа это константа.     | |||
| 7
    
        asady 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.     | |||
| 9
    
        asady 26.10.18✎ 09:27 | 
        (8) попробуй в строке подключения указать:
 Extended properties=dBase IV | |||
| 10
    
        Так мало знающий 26.10.18✎ 09:31 | 
        (9) Он же вроде не поддерживает мемо поля, да и готовлю я их для загрузки в сервио, обмен с которым на этой библиотеке     | |||
| 11
    
        asady 26.10.18✎ 09:32 | 
        (8) вообще поиском ты видимо не пользовался совсем
 Запись данных из ДБФ с мемо полями | |||
| 12
    
        Так мало знающий 26.10.18✎ 09:33 | 
        (11) Пользовался и эту тему видел. В ней вопрос о чтении, а запись не обсуждается     | |||
| 13
    
        asady 26.10.18✎ 09:36 | ||||
| 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 в нее писать.     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |