Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Запись графического файла


Автор: NiJazz 2.2.2005, 21:52
Я делал так:
Код

(Table1.FieldByName('Field') as TGraphicField).LoadFromFile('File.bmp');

У меня при вызове ApplyUpdates (таблица CachedUpdates) возникает ошибка "Key Violation".
Какие еще есть способы сохранить картинку? Assign?

Автор: Alex 2.2.2005, 22:36
А поле в базе у тебя какого типа?

Автор: NiJazz 3.2.2005, 08:40
Цитата
А поле в базе у тебя какого типа?

Graphic.
Таблица Paradox, конечно.

Автор: User 3.2.2005, 12:52
Можешь созранять картинку в BLOB поле или сохранять токо путь. Я раньше задавал такой же вопрос. Посмотри мой исходный код:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, DBGrids, DBCtrls, Db, DBTables, Clipbrd, StdCtrls, ExtDlgs,
ExtCtrls, BDE;

type
TForm1 = class(TForm)
Table1: TTable;
DataSource1: TDataSource;
DBImage1: TDBImage;
DBGrid1: TDBGrid;
OpenPictureDialog1: TOpenPictureDialog;
Button1: TButton;
Table1ID: TAutoIncField;
Table1NAME: TStringField;
Table1COMEN: TMemoField;
Table1GRAF: TGraphicField;
DBNavigator1: TDBNavigator;
Edit1: TEdit;
Image1: TImage;
Button2: TButton;
Edit2: TEdit;
procedure Button1Click(Sender: TObject);
procedure DBGrid1CellClick(Column: TColumn);
private
{ Private declarations }
public
{ Public declarations }

end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenPictureDialog1.Execute then
begin
table1.edit;
Table1GRAF.LoadFromFile(OpenPictureDialog1.FileName);
Edit1.Text := OpenPictureDialog1.FileName;
table1.post;
end;
end;

procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
Image1.Picture.Bitmap.Assign(Table1GRAF);
end;
end.
Добавлено @ 12:53
Или я не так что то понял?

Автор: NiJazz 3.2.2005, 13:26
User
Пожалуйста, используй теги для кода в будущем.

Автор: Vit 3.2.2005, 16:26
Key Violation - это не с картинкой связано, а с добавлением неуникальной записи по первичному ключу... Убери эту строку (Table1.FieldByName('Field') as TGraphicField).LoadFromFile('File.bmp'); и у тебя всё равно будет возникать эта ошибка

Автор: Bes 4.2.2005, 07:54
Почему бы не хранить файлы отдельно, а ссылки на эти файлы в поле.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)