Файл БД удобнее разместить в той же папке, что и приложение.
Создаю эту папку D:\XRAN_MY_PROGS\novoros3\30_04\
Запускаю IBConsole.exe (входит в дистрибутив Делфи7).
Далее:
CREATE TABLE "vtor"
( "ID" SMALLINT NOT NULL,
"OPIS" VARCHAR(200) NOT NULL,
"FOTO" BLOB,
PRIMARY KEY ("ID") );
Для ввода запроса - в IBConsole: Меню | Tools | Interacive SQL.IBDatabase1.DefaultTransaction = IBTransaction1 IBTransaction1.DefaultDatabase = IBDatabase1 IBDatabase1.Connected = true IBTransaction1.Active = true IBTable1.Database = IBDatabase1 IBTable1.TableName = vtor IBTable1.Active = true DataSource1.DataSet = IBTable1 DBGrid1.DataSource = DataSource1 DBNavigator1.DataSource = DataSource1 DBImage1.DataSource = DataSource1 DBImage1.DataField = foto (выбрать) DBEdit1.DataSource = DataSource1 DBEdit1.DataField = ID (выбрать) DBMemo1.DataSource = DataSource1 DBMemo1.DataField = OPIS (выбрать) Полезно перевести на русский подсказки (Hints) DBNavigator1 и установить ShowHints = true. Я перевёл Hints так: В начало Назад Вперёд В конец Вставить запись Удалить запись Править запись Сохранить правку Отменить правку Освежить данные (из БД) Примечание: при всяких проблемах (в режиме разработки) полезно проверить (и установить) состояние: IBDatabase1.Connected = true; IBTransaction1.Active = true; IBTable1.Active = true; При отладке иногда приходится присваивать IBDatabase1.Connected = false, затем - восстанавливать (все вышеперечисленные настройки).
- Компилирую и запускаю проект - На DBNavigator щелкаю кнопку редактирования. - В окошке DBEdit1 заполняю поле ID, - В окошке DBMemo1 заполняю поле OPIS, - Открываю небольшую картинку в редакторе Paint, выделяю её (например, с помощью Ctrl-A), затем копирую (Ctrl-C) - В проекте щелкаю по DBImage1, затем вставляю туда картинку из буфера (Ctrl-V) - На DBNavigator щелкаю кнопку "Сохранить правку".
Кнопки выполняют следующие действия (слева-направо): В начало Назад Вперёд В конец Вставить запись Удалить запись Править запись Сохранить правку Отменить правку Освежить данные (из БД)
unit unTab;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DBCtrls, DB, IBCustomDataSet, IBTable, IBDatabase,
ExtCtrls, Mask;
type
TForm1 = class(TForm)
DBMemo1: TDBMemo;
DBImage1: TDBImage;
DBEdit1: TDBEdit;
DBNavigator1: TDBNavigator;
IBDatabase1: TIBDatabase;
IBTransaction1: TIBTransaction;
IBTable1: TIBTable;
DataSource1: TDataSource;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
end.
Возможно, будет полезно просмотреть текст файла unTab.dfm:
object Form1: TForm1
Left = 428
Top = 141
Width = 471
Height = 305
Caption = ' Форма для работы с таблицей'
Color = clBtnFace
Font.Charset = RUSSIAN_CHARSET
Font.Color = clWindowText
Font.Height = -15
Font.Name = 'Tahoma'
Font.Style = []
OldCreateOrder = False
PixelsPerInch = 96
TextHeight = 18
object Label1: TLabel
Left = 8
Top = 11
Width = 73
Height = 18
Caption = '№ записи '
end
object Label2: TLabel
Left = 8
Top = 43
Width = 71
Height = 18
Caption = 'Описание '
end
object Label3: TLabel
Left = 416
Top = 5
Width = 39
Height = 18
Caption = 'Фото '
end
object DBMemo1: TDBMemo
Left = 8
Top = 62
Width = 209
Height = 161
DataField = 'OPIS'
DataSource = DataSource1
ScrollBars = ssVertical
TabOrder = 0
end
object DBImage1: TDBImage
Left = 224
Top = 24
Width = 233
Height = 201
DataField = 'FOTO'
DataSource = DataSource1
TabOrder = 1
end
object DBEdit1: TDBEdit
Left = 88
Top = 8
Width = 129
Height = 27
DataField = 'ID'
DataSource = DataSource1
Font.Charset = RUSSIAN_CHARSET
Font.Color = clRed
Font.Height = -16
Font.Name = 'Tahoma'
Font.Style = [fsBold]
ParentFont = False
TabOrder = 2
end
object DBNavigator1: TDBNavigator
Left = 8
Top = 232
Width = 440
Height = 25
DataSource = DataSource1
Hints.Strings = (
'В начало'
'Назад'
'Вперёд'
'В конец'
'Вставить запись'
'Удалить запись'
'Править запись'
'Сохранить правку'
'Отменить правку'
'Освежить данные (из БД)')
ParentShowHint = False
ShowHint = True
TabOrder = 3
end
object IBDatabase1: TIBDatabase
Connected = True
DatabaseName = 'DB3.GDB'
Params.Strings = (
'user_name=SYSDBA'
'password=masterkey'
'lc_ctype=WIN1251')
LoginPrompt = False
DefaultTransaction = IBTransaction1
IdleTimer = 0
SQLDialect = 3
TraceFlags = []
Left = 24
Top = 152
end
object IBTransaction1: TIBTransaction
Active = True
DefaultDatabase = IBDatabase1
AutoStopAction = saNone
Left = 64
Top = 152
end
object IBTable1: TIBTable
Database = IBDatabase1
Transaction = IBTransaction1
AutoCalcFields = False
Active = True
BufferChunks = 1000
CachedUpdates = False
FieldDefs = <
item
Name = 'ID'
Attributes = [faRequired]
DataType = ftSmallint
end
item
Name = 'OPIS'
Attributes = [faRequired]
DataType = ftString
Size = 200
end
item
Name = 'FOTO'
DataType = ftBlob
Size = 8
end>
IndexDefs = <
item
Name = 'RDB$PRIMARY2'
Fields = 'ID'
Options = [ixPrimary, ixUnique]
end>
StoreDefs = True
TableName = 'vtor'
Left = 96
Top = 152
end
object DataSource1: TDataSource
DataSet = IBTable1
Left = 128
Top = 152
end
end
Скачать все файлы делфи-проекта и файл БД - DB1.GDB