Хранение файлов в поле ntext,text VFP8+SQL2000+ODBC

Novikov Andrey
Дата: 15.10.2003 10:55:38
1. В фоксе нет ограничения на длину мемо поля в 8kb - поэтому я заполняю поле файлом с диска и через ODBC обновляю базу на SQL- все проходит,
но при новом считывании из БД я получаю строку длиннее исходного файла:
через каждые 4095 байт добавляется CHAR(0)
КТО это делает (FOX или SQL) и как с этим бороться?
2. В форумах обсуждалась выгрузка из SQL на диск черех XP_FILE.DLL,
но ссылка не работает. У кого-нибудь остался сам файл?
Спасибо
Crip
Дата: 15.10.2003 11:11:04
Каким образом происходит заполнение memo поля? Интересует фоксовый код.
Кстати чему равно set('memowidth') ?
В любом случае пользительней употреблять SQL Pass Through
sqlexec(gnConnectHandle,"insert mytable values (?filetostr([myfile.txt]))")
Novikov Andrey
Дата: 15.10.2003 11:14:03
Append memo m0 from "с:\file.tip"
Set memo=50
Если через SQL не обрежет более 8000?
Crip
Дата: 15.10.2003 11:19:17
Если через SQL не обрежет более 8000?
Согласно Visual FoxPro System Capacities ограничение 16Мб,но возможно для ODBC ограничение на размер батча больше. Больше 16 Мб я не передавал, но с близкими значениями проблем не было...
Crip
Дата: 15.10.2003 11:25:42
Кстати проверил на вашем примере и никаких проблем не нашел. Значения добавлял через
SQLEXEC(ggg.cONNECTHANDLE,'insert #t values (?MyTable.m0)')
Может и вам так попробовать? Тогда точно никаких ограничений нет. 16Mb это вроде на filetostr() и то не факт...
Novikov Andrey
Дата: 15.10.2003 11:30:07
SQLEXEC(ggg.cONNECTHANDLE,'insert #t values (?MyTable.m0)')
не понял ggg.cONNECTHANDLE - что это?
?MyTable.m0 - что это?
Можно полный код
Crip
Дата: 15.10.2003 11:34:05
ggg.cONNECTHANDLE - это на скорую руку Connect Handle. У меня класс соединения.MyTable.m0 - ваше мемо поле заполненное через Append Memo
Короче вот...
SQLEXEC(gnConnectHandle,'insert SQLServerTable values (?MyFoxTable.MemoField)') 
Novikov Andrey
Дата: 15.10.2003 11:46:31
Crip это получается, но проблема в выборке -> снова
выбирается больше чем файл :
Добавляется char(0) через 4095 символов

Ни у кого не осталось XP_FILE.DLL-очень нужно
Crip
Дата: 15.10.2003 11:48:19
А вариант с filetostr() не подходит?
Novikov Andrey
Дата: 15.10.2003 11:52:35
filetostr - это для заполнения БД
а для выборки из нее и сохранение в файл на диске ?