Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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.034 c
3-41048
safarov
2003-10-24 06:27
2003.11.13
Импортирование


1-41489
Михааааааааа
2003-10-28 16:47
2003.11.13
TImage


1-41653
Endi
2003-10-25 16:52
2003.11.13
Как считать строки, прерывающиеся 0 байтом.


3-40851
Andrushk
2003-10-07 18:21
2003.11.13
Как восстановить утерянный Connect


7-42200
Карелин Артем
2003-08-25 13:59
2003.11.13
Сервис и иконка.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский