muk07 |
Отправлено: 11.10.2006, 08:01 |
|
Ученик-кочегар
Группа: Участник
Сообщений: 1
|
Среда: MSSQL 2000 CBuilder5 BDE
Имею текст для помещения картинки в БД. Получаю отлуп. В поиске не нашёл.
void __fastcall TfrmBLOB::mnuLoadClick(TObject *Sender){
if(!dlg->Execute()){ // TOpenPictureDialog
return;
}
int ID=que->FieldByName("Tovar_ID")->AsInteger; // ID беру из другого запроса
TQuery *q=CreateQuery(db, // это моя ф-я создаёт запрос и подставляет параметры
"select Tovar_ID, Photo from Tovar where Tovar_ID=:ID",
"ID",INT_TYPE,ID,
0);
q->RequestLive=true;
q->Open();
TBlobField *b=(TBlobField *)q->FieldByName("Photo");
q->Edit();
TBlobStream *bs=new TBlobStream(b,bmWrite);
char buf[BUFSIZE];
FILE *f=fopen(dlg->FileName.c_str(),"rb");
int nByte;
do{
nByte=fread(buf,1,BUFSIZE,f);
bs->Write(buf,nByte);
} while(BUFSIZE==nByte);
fclose(f);
q->Post(); // ВОТ ЗДЕСЬ "another user changed record"
delete bs;
delete q;
} |
|
olegenty |
Отправлено: 11.10.2006, 08:14 |
|
Ветеран
Группа: Модератор
Сообщений: 2412
|
Извращанец?
CODE |
TADOQuery *q = new TADOQuery(this);
q->SQL->Text = "insert into [table] values (:ID, :BLOB)"
TParameter *ID = q->Parameters->CreateParameter("ID", ftInteger, pdInput, 0, NULL);
TParameter *BLOB = q->Parameters->CreateParameter("BLOB", ftBlob, pdInput, 0, NULL);
q->Connection = YourConnection;
ID->Value = YourIDValue;
BLOB->LoadFromFile(dlg->FileName, ftBlob);
q->ExecSQL();
delete q;
|
BDE + MSSQL = неверное в корне решение
|
|
|