Вниз
Скачать: CL | DM;

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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.034 c
1-41371
Тимохов
2003-10-30 13:16
2003.11.13
Вопрос по внутренней организации классов в Delphi


3-40831
Deedlit
2003-10-22 07:12
2003.11.13
TOleException при работе с БД MS Access


1-41254
phan
2003-10-29 23:18
2003.11.13
Вставка визуального коспонента в StringGrid/DrawGrid


1-41249
Andrey Klimov
2003-10-31 18:28
2003.11.13
Autodetect Charset


14-41902
Behemoth
2003-10-13 09:45
2003.11.13
Какой язык программирования под WEB выбрать?




   Наверх