Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.13;
Скачать: 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 вся ветка

Текущий архив: 2003.11.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.021 c
3-40873
Max654
2003-10-25 17:12
2003.11.13
базы данных


6-41804
Fixxxer
2003-09-16 12:48
2003.11.13
и ещё вопрос по скриптам


14-41953
Fenix==
2003-10-24 12:25
2003.11.13
Обьявление


3-40837
SER
2003-10-16 19:16
2003.11.13
Перенос приложения использующего АДО и Аксесс на другой ПК


14-42091
Nick Denry
2003-10-19 15:17
2003.11.13
Любознательность №1.