Проблемы с Access MEMO при подключении через Ado
От: Ganchikov  
Дата: 15.11.04 14:05
Оценка:
Уважаемые знатоки Ado, Access И Visual Basic!! СРОЧНО нужна ваша помошь! Решил использовать поле MEMO в базе Access для хранения больших блоков текста! Однако после записи данных в поле из удаленного подключения Ado в поле остается лишь кусок первоначальных данных. Смотрю help — там пишется, что размер поля зависит от общего размера базы (опять же при использовании пресловутых удаленных подключений). Подскажите, кто знает, как мне задать допустимый размер поля MEMO чтобы используя ADO записывать в него большие куски текста!!!
Re: Проблемы с Access MEMO при подключении через Ado
От: Elena_ Россия  
Дата: 15.11.04 23:20
Оценка:
Здравствуйте, Ganchikov, Вы писали:

G> Уважаемые знатоки Ado, Access И Visual Basic!! СРОЧНО нужна ваша помошь! Решил использовать поле MEMO в базе Access для хранения больших блоков текста! Однако после записи данных в поле из удаленного подключения Ado в поле остается лишь кусок первоначальных данных. Смотрю help — там пишется, что размер поля зависит от общего размера базы (опять же при использовании пресловутых удаленных подключений). Подскажите, кто знает, как мне задать допустимый размер поля MEMO чтобы используя ADO записывать в него большие куски текста!!!


Из справки:

Число знаков в поле MEMO 65 535 при вводе данных через интерфейс пользователя;
1 Гбайт для хранения знаков при программном вводе данных.


Размер файла базы данных Microsoft Access (.mdb) 2 Гбайт за вычетом места, необходимого системным объектам.


По-моему, эта вся зависимость размера Memo от базы Access.

У меня работает такой код
    Dim s As String, l As Long
    For l = 1 To 20000
        s = s & l & " "
    Next l
    MsgBox Len(s)

    Dim rst As New ADODB.Recordset
    rst.Open "SELECT * from TMemo", cnn, adOpenKeyset, adLockOptimistic
    
    rst.AddNew
    rst.Fields("mem") = s
    rst.Update
    
    rst.Close
    Set rst = Nothing
    
    rst.Open "SELECT * from TMemo", cnn, adOpenForwardOnly
    MsgBox Len(rst.Fields("mem")) ' = Len(s)
        
    rst.Close
    Set rst = Nothing
Пользователь — друг программиста!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.