DBNavigator plik .dbf "nie laduja" sie dane! pomimo okreslenia source & field.

0

Witam.
probowalam naprawde duzo by zaczal mi dzialac program, ale widocznie za malo.mam delphi 3. w pliku dbf oprocz kolumn typu c,n mam tez typu b/blob binary/-zdjecie podporzadkowane pod dana osobe.
zdjecie przy wpisaniu numeru osoby i naduszeniu przycisku/buttonu "dodaj zdjecie" sie laduje.niestety nie mozna tego powiedziec o dalszych inf. informacje maja byc pokazane w dbedit, kazdy z nich ma okreslony datasource i datafield-nazwa taka sama jak w pliku dbf. dbnavigator ma ustawione datasource. no i jest klopot. zaladowalo mi sie od razu po okresleniu datasource w poszczegolnych dbeditach dane z pierwszej osoby.i nic, nic dalej. po urychomieniu nie mozna korzystac z dbnavigaotra bo pojawia sie komunikat a dokladniej error cytuje
"project project1.exe raised exception class EDBEngineerror with message 'corupt memo/blob file. file: sciezka do pliku z .dbt' process stopped." no i nic.;/ przez to to wlasciwie mozna powiedziec ze program mi nie dziala:(
zdjecie laduje kodem:
procedure TForm1.Button2Click(Sender: TObject);
begin
if Table1. FieldByName('NR').DisplayText<>'' THEN
Table1.Edit;
DBImage1.Picture.LoadFromFile('m'+Table1.FieldByName('NR').DisplayText+'.bmp');

end;
niby reszty danych nie mam ladowac kodem powinno mi sie pojawiac, przy przelaczaniu. no jedynie, ze cos zle przeczytalam. albo nie doczytalam...albo jeszcze cos:////
prosze o pomoc. bo naprawde nie wiem co mam z tym juz zrobic.

0

aha. tabele mam typu dBASE for windows.robilismy tak na zajeciach(chyba z ok.4h zajec bylo) wiec i tu tak zrobilam.

0

nie DisplayText tylko AsString. BTW piszesz, że obrazki w pliku BLOB a ładujesz je z BMP. Powiem szczerze, że mało co zrozumiałem z tego co napisałeś. Najlepiej daj kawałek DBFa z danymi, trochę więcej kodu i przede wszystkim gdzie dokładnie pojawia się błąd

0

blad pojawia sie po uruchomieniu programu, przy uruchomieniu dbnavigator, gdy dusze na przycisk "dalej". zaraz po tym bledzie okreslonym wyzej pojawia sie kolejny blad project1 " insufficient memory for this operation. file: c:...tabele1.dbt"

program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1};
{$R *.RES}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
w object inspector kazdy z dbedit ma okreslony datasource (datasource1) i datafield-nazwa taka sama jak w pliku dbf (imie, nazwisko, adres,itd).
w dbedit1, dbedit2, itd mialy sie pokazywac dane z tabele1.dbf imie; nazwisko, adres. po uruchomieniu programu mozna jedynie edytowac dane dbedit.ale same dane z table1 sie nie laduja.
BTW piszesz, że obrazki w pliku BLOB a ładujesz je z BMP -> tak mam w pliku od kolegi, ktory robil to na cwiczeniach a ze podstawy te same, to tak samo zrobilam.

0

nie mam za bardzo czym rzucac

0

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ComCtrls, Menus, DBCtrls, ExtCtrls, Grids, Calendar, Mask, Db,
DBTables;

type
TForm1 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
DBImage1: TDBImage;
Button2: TButton;
DBNavigator1: TDBNavigator;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Calendar1: TCalendar;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
DBEdit7: TDBEdit;
DBEdit8: TDBEdit;
Label10: TLabel;
Label11: TLabel;
DateTimePicker1: TDateTimePicker;
StringGrid1: TStringGrid;
Label12: TLabel;
DataSource1: TDataSource;
Table1: TTable;
procedure FormCreate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
procedure DateTimePicker1Change(Sender: TObject);
procedure StringGrid1Click(Sender: TObject);

private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.DFM}

procedure wypelnij_tabele(var s:TstringGrid);
var i:integer;
begin
with s do begin
Cells[0,0]:='Przedmioty:';
Cells[0,1]:='j.polski';
Cells[0,2]:='matematyka';
Cells[0,3]:='j.angielski';
Cells[0,4]:='biologia';
Cells[0,5]:='edukacja dla bezpieczeństwa';
Cells[0,6]:='fizyka';
Cells[0,7]:='zajęcia artystyczne';
Cells[0,8]:='wos';
Cells[0,9]:='informatyka';
Cells[0,10]:='srednia';
for i:=1 to 9 do
cells[i,0]:='ocena';
end;

end;

      procedure TForm1.FormCreate(Sender: TObject);

begin
wypelnij_tabele(StringGrid1);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
if Table1. FieldByName('NR').AsString<>'' THEN
Table1.Edit;
DBImage1.Picture.LoadFromFile('m'+Table1.FieldByName('NR').AsString+'.bmp');

end;

procedure TForm1.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
begin
if Table1.FieldByName('DATA_UR').DisplayText='' THEN
begin
Label11.Visible:=True;
DateTimePicker1.Visible:=True;
end
else
begin
Label11.Visible:=False;
DateTimePicker1.Visible:=False;
end;
END;
procedure TForm1.DateTimePicker1Change(Sender: TObject);
begin
Table1.Edit;
Table1.FieldValues['DATA_UR']:=DateTimePicker1.Date;

end;

1 użytkowników online, w tym zalogowanych: 0, gości: 1