Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.02.06;
Скачать: CL | DM;

Вниз

Запись файла в поле типа 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;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.053 c
1-16363
Gogi
2004-01-24 06:54
2004.02.06
Как убрать у тулбара левую часть за которую его таскаешь?


6-16552
Паша Т
2003-12-02 21:42
2004.02.06
IdFTP


14-16610
Devourer
2004-01-15 12:15
2004.02.06
Outlook Express - несколько ПЯ


8-16517
Alexey123
2003-10-03 19:08
2004.02.06
Вывод на печать графического объекта


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