Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];

Вниз

Запись файла в поле типа Image   Найти похожие ветки 

 
Skipidar   (2004-01-10 05:51) [0]

Здравствуйте! Не могли бы вы подсказать, как в поле типа Image базы MSSQL записать содержимое файла, используя TADOQuery?
Заранее благодарен.


 
Alone Corsar   (2004-01-10 08:55) [1]

Кнопочка F1......


 
Skipidar   (2004-01-11 00:37) [2]

А всё-таки как?
У себя в приложении я использовал такой вариант:


DM.ADOQuery1.SQL.Text := "INSERT Files VALUES(" + IntToStr(File_ID) + ", " +
IntToStr(Num_L) + ", NULL, " + IntToStr(SearchRec.Size) +
", " + IntToStr(File_Type) + ", """ + EditTitle.Text +
""", """ + Memo1.Text + """, """ + Str + """, """ +
EditHyperlink.Text + """)";
DM.ADOQuery1.ExecSQL;

DM.ADOQuery1.SQL.Text := "UPDATE Files"#13 +
"SET Body = NULL"#13 +
"WHERE ID = " + IntToStr(File_ID);
DM.ADOQuery1.ExecSQL;

DM.ADOQuery1.SQL.Text := "EXEC sp_dboption ""NSD"", ""select into/bulkcopy"", ""true""";
DM.ADOQuery1.ExecSQL;

f := TFileStream.Create(OpenDialog1.FileName, fmOpenRead);

repeat
Readed := f.Read(a, 500);
BinToHex(@a, @S1, Readed);
S := S + S1;
if (Length(S) >= 65000) or (f.Position = f.Size) then begin
if Readed < 500 then
SetLength(S, Length(S) - 1000 + Readed*2);
//end if
DM.ADOQuery1.SQL.Text := "DECLARE @ptrval binary(16)"#13 +
"SELECT @ptrval = TEXTPTR(Body)"#13 +
"FROM Files"#13 +
"WHERE Files.ID = " + IntToStr(File_ID) + #13 +
"UPDATETEXT Files.Body @ptrval NULL 0 0x" + S;
DM.ADOQuery1.ExecSQL;

S := "";
Application.ProcessMessages;
end;//if
until f.Position = f.Size;

DM.ADOQuery1.SQL.Text := "EXEC sp_dboption ""NSD"", ""select into/bulkcopy"", ""false""";
DM.ADOQuery1.ExecSQL;

f.Free;


Работает без проблем, но, как сами понимаете, очень медленно. Меня интересует, как сделать то же самое через потоки. Неужели сложно написать простейший пример?



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2004.02.06;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.032 c
1-16311
Lisa
2004-01-25 16:44
2004.02.06
TDBNavigator


6-16569
Ign
2003-11-03 14:55
2004.02.06
Использование TUdpSocket


1-16345
Vitalik
2004-01-24 15:06
2004.02.06
Классы


3-16084
Леонид
2004-01-10 23:14
2004.02.06
Работа с Мемо


14-16585
Holy
2004-01-18 23:26
2004.02.06
С чего начать или куда думать?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский