Форум: "Базы";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
ВнизMS SQL, записать поле text Найти похожие ветки
← →
frogl (2003-10-21 18:42) [0]Добрый день.
Есть MS SQL. Есть таблица с полем типа text. Как в нее записать какой-либо текстовый файл.
Пробовал так:
memo.Lines.LoadFromFile("c:\1.htm");
s:="insert into messages(forum_id, messag) values (12," +
"""" + memo.Lines.Text + """"
+ ")";
q.SQL.Text:=s;
q.ExecSQL;
Если в memo что-то простое, вида "привет" - все работает. Если загружаю реальный файл - при выполнении запроса выскакивает сообщение - reaised exception class EOleException with message "Parameters object is improperly defined. Inconsistent or incomplete information was provided."
Как делать правильно ?
← →
Семен Сорокин (2003-10-21 18:47) [1]попробуй так:
memo.Lines.LoadFromFile("c:\1.htm");
q.SQL.Add("insert into messages(forum_id, messag) values (12, :text)")
q.ParamByName("text").AsString := memo.Lines.Text;
{для ADO: q.Parameters.ParamByName("text").Value := ...}
q.ExecSQL;
← →
alxx (2003-10-21 19:22) [2]Вообще то реальный текст не вставляется потому, что там двоеточия встречаются. А еще если апострофы встретятся - тоже баги будут.
← →
me (2003-10-21 20:55) [3]Этот пример загрузки текстового файла в поле my_text_field таблицы my_table можно оформить как хранимую процедуру:
declare @FSObject int, @FileID int, @hr int, @FileName varchar(256), @stm int, @buff varchar(8000)
execute @hr = sp_OACreate "Scripting.FileSystemObject", @FSObject OUT
if @hr = 0
begin
set @FileName = "c:\some_folder\some_file.txt"
execute @hr = sp_OAMethod @FSObject, "FileExists", @exist OUT, @FileName
if @exist = 1
begin
execute @hr = sp_OAMethod @FSObject, "GetFile", @FileID OUT, @FileName
IF @hr = 0
begin
execute @hr = sp_OAMethod @FileID, "OpenAsTextStream", @stm OUT, 1
IF @hr = 0
begin
execute @hr = sp_OAMethod @stm, "ReadAll", @buff OUT
update my_table set my_text_field = @buff where ...
end
end
end
end
execute @hr = sp_OADestroy @FSObject
← →
frogl (2003-10-22 10:20) [4]Семен - спасибо. Мнепомог твой способ.
me - тоже спасибо. Постараюсь в ближайшее время разобраться и с твоим вариантом.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2003.11.13;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.042 c