Имя: Пароль:
1C
1С v8
Получение текста из memo поля в access через ado
0 irina_shport
 
16.09.13
12:29
Привет. Подскажите, как получить значение поля memo из аксесса, соединение через ADODB.Connection. Value возвращает NULL. C остальными полями проблем нет. Как получить текст из мемо?(((( Второй день бьюсь.
1 МихаилМ
 
16.09.13
12:47
через ADODB.Connection

к access можно получить доступ минимум через 4 драйвера :

isam,oledb,ace,odbc.

будьте точнее в своих вопросах.
2 shuhard
 
16.09.13
12:52
(0)[ Второй день бьюсь.]
ну используй гетчунк
3 irina_shport
 
16.09.13
14:50
СтрокаПодключения  =   "Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=D:\1.accdb;Uid=;Pwd=;";
    Connection = Новый COMОбъект("ADODB.Connection");
    Попытка
        Connection.Open(СтрокаПодключения);
    Исключение
        Сообщить(ОписаниеОшибки());
        Возврат;
    КонецПопытки;
        Command = Новый COMОбъект("ADODB.Command");

    Command.ActiveConnection = Connection;
    Command.CommandText = "select * FROM table_one";
    Command.CommandType = 1;
    RecordSet = Новый COMОбъект("ADODB.RecordSet");
    RecordSet = Command.Execute();

Соединяюсь вот так, уточняю. Как быть?
4 irina_shport
 
16.09.13
14:51
(2) гетчунк? что это?
5 irina_shport
 
16.09.13
14:52
(1) Уточнила, см выше, как быть?
6 shuhard
 
16.09.13
15:15
(4) гугл - где это ?
7 МихаилМ
 
16.09.13
15:26
что за ерунда


RecordSet = Новый COMОбъект("ADODB.RecordSet");
и тут же
RecordSet = Command.Execute();
8 irina_shport
 
16.09.13
15:39
(7) эта ерунда работает и получает данные из аксесса, по делу можете подсказать?
9 МихаилМ
 
16.09.13
15:47
(8)
По делу Вам  shuhard подсказал.
10 irina_shport
 
16.09.13
15:50
(9) поняла, спасибо, рою просторы интернета, если возникнут вопросы - напишу =)
11 irina_shport
 
16.09.13
16:06
(6) спасибо за наводку, пообщались с гуглом, он мне посоветовал сделать вот так
Recordset.Fields(н).GetChunk(RecordSet.Fields(н).ActualSize)
не получилось, пишет ошибку( что я делаю не так?
очень прошу не стебаться и помочь, заранее большое спасибо
12 МихаилМ
 
16.09.13
16:30
(11)
будьте точнее в своих вопросах.

приведите текст ошибки

преоразуйте строку

Recordset.Fields(н).GetChunk(RecordSet.Fields(н).ActualSize)

в

curfield = Recordset.Fields(н);
fieldsize = curfield.ActualSize;
memodata = curfield.GetChunk(fieldsize);


почитайте документацию к GetChunk
этот метод применим с полям Memo или Long Binary

а  Fields(н) похоже на перебор всех полей.
13 irina_shport
 
16.09.13
16:36
(12) поняла, там перебор всех полей, но условие на наименование, поэтому гетчанк я именно к мемо полю использую, сейчас преобразую и попробую, спасибо большое
14 irina_shport
 
16.09.13
16:58
(12) хм, он мне fieldsize = 0 выдает, хотя в аксессе смотрю в поле текст есть
{Форма.Форма.Форма(154)}: Ошибка при вызове метода контекста (GetChunk)
memodata = curfield.GetChunk(fieldsize);
по причине:
Произошла исключительная ситуация (ADODB.Field): Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом.
я так полагаю из-за размера 0?
тип мемо в конструкторе таблиц в аксессе смотрю....почему так?
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн