![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здравствуйте я начинающий программист и столкнулся с проблемой, как в бд добавить файл
вот мой юнит Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, IBDatabase, IBCustomDataSet, IBTable, IBSQLMonitor, Grids, DBGrids,
ExtCtrls, DBCtrls, IBQuery, StdCtrls;
type
TForm1 = class(TForm)
IBDatabase1: TIBDatabase;
IBTable1: TIBTable;
IBTransaction1: TIBTransaction;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
IBQuery1: TIBQuery;
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Button2: TButton;
IBQuery2: TIBQuery;
OpenDialog1: TOpenDialog;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
NN ,P1 , P2 :string;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
begin
IBQuery1.Active:=False;
{NN:=Edit1.Text;
P1:=Edit2.Text;
P2:=Edit3.Text;}
Try
strtoint(Edit1.Text);
strtoint(Edit3.Text);
except
MessageDlg('Error !!!' , mtError ,[mbYes], 0);
exit;
end;
IBQuery1.Sql.Text:='insert into QWERTY (NN,POLE1,POLE2,APP) VALUES(:NN,:P1,:P2,:APP)';
IBQuery1.Params[0].asInteger:=strtoint(Edit1.Text);
IBQuery1.Params[1].asstring:=Edit2.Text;
IBQuery1.Params[2].asInteger:=strtoint(Edit3.Text);
IBQuery1.Params[3].
IBQuery1.ExecSQL;
IBTable1.Active:=False;
IBQuery1.Sql.Text:='select*from QWERTY ORDER BY SP1';
IBQuery1.Active:=True;
IBQuery1.Active:=False;
IBTable1.Active:=True;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Label1.Caption:='NN';
Label2.Caption:='Pole 1';
Label3.Caption:='Pole 2';
Edit1.Text:='';
Edit2.Text:='';
Edit3.Text:='';
Button1.Caption:='Äîáàâèòü';
Button2.Caption:='Exit';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Application.Terminate;
end;
end.с текстом я то разобрался сортировку зделал по СП1 который в свою очередь через айбиЕксперт стоит тригер Код:
AS
BEGIN
IF (NEW.SP1 IS NULL) THEN
NEW.SP1 = GEN_ID(GEN_QWERTY_ID,1);
END
а вот как файл туда вставить не знаю и желательно помогите как уже вставленный файл из БД взять (я с файлами вообще неразу не работал только приметивное Input и output ) я рылся в нете там нашол максимум отсылки на то что надо както с файлом через память работать а как к IBQuery1.Params[3].asBlob зделать правильно не знаю добавить хочу екзешник работаю на Делфи5ть а бд на локальной машыне |
|
#2
|
||||
|
||||
|
вставить
Код:
IBQ.sql.text:='update Table_name set Field_name = :b'; // или insert вместо update
IBQ.params.parseSQL(IBQ.sql.text, true);
IBQ.params.parambyname('b').LoadFromFile('Path to filw',ftBlob);
IBQ.execsql;
IBT.Commit;выгрузить (выдрал из своего кода- разберешься): Код:
var s:Tstream;
FileS:TFileStream;
begin
try
IBQ_Blob.Open;
s:=IBQ_Blob.CreateBlobStream(IBQ_Blob.FieldByName(Field_name), bmRead);
if FileExists('Docs\'+File_name) then
FileS:=TFileStream.Create('Docs\'+File_name,fmOpenWrite)
else
FileS:=TFileStream.Create('Docs\'+File_name,fmCreate);
FileS.CopyFrom(s,s.Size);
s.Free;
FileS.Free;
IBQ_Blob.Close;
IBT_Blob.Commit;
except
ShowMessage('Ошибка при открытии шаблона '+File_name);
end;Код:
select * from Table_name Последний раз редактировалось TOJluK, 01.10.2009 в 16:09. |
|
#3
|
|||
|
|||
|
Все спасибо разобрался .
С извлечением сложно правда было. |