Файл БД удобнее разместить в той же папке, что и приложение.
Создаю эту папку 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