Witam!
Napisałem książkę adresową, która działa dzięki DBf
, DataSource
, DBGrid
. Pisałem ją w Lazarusie pod Linuxem, pod Mint.
Kompilacja pod Windowsem po skopiowaniu przeszła za pierwszym razem pomyślnie, jednak powstał nowy problem, który nie wiem jak rozwiązać. Przy próbie zapisania bazy do katalogu z projektem, który znajduje się w moich dokumentach, powstaje komunikat:
Wydaje mi się, że to jest problem z polskimi znakami w ścieżce, bo nazwa użytkownika to moje imie, a moje imie zawiera 'ł'. Gdy na Windowsie zapisuje bezpośrednio na partycji D:\ to zapisuje się bez problemu. Ze względu, że na Linuxie nie używam polskich znaków w ścieżce to nie zauważyłem tego problemu wcześniej.
Poniżej wklejam kod tworzenia bazy:
type
{ TForm1 }
TForm1 = class(TForm)
NowaBaza: TMenuItem;
OtworzBaza: TOpenDialog;
DataSource1: TDataSource;
Baza: TDbf;
DBGrid1: TDBGrid;
procedure TForm1.NowaBazaClick(Sender: TObject);
begin
With ZapiszBaza do
If Execute then
CreateTable(FileName);
end;
procedure TForm1.CreateTable(AFileName : String);
begin
With Baza do
begin
Close;
with FieldDefs do
begin
Clear;
TableLevel:=7; //Żeby działa automatyczna inkrementacja ID
Add('ID', ftAutoInc, 0);
Add('Imie',ftString,30);
Add('Nazwisko',ftString,40);
Add('Telefon',ftString,20);
Add('TelefonKom',ftString,20);
Add('eMail',ftString,60);
Add('Kraj',ftString,30);
Add('Miasto',ftString,30);
Add('Kod',ftString,10);
Add('Ulica',ftString,30);
Add('Blok',ftString,10);
Add('Lokal',ftString,10);
Add('Inne',ftString,200);
end;
TableName:=AFileName;
CreateTable;
Exclusive := true;
Open;
AddIndex('ID', 'ID', [ixPrimary, ixUnique]);
end;
end;
Co dziwne to znaki polskie w bazie zapisują się bez problemu, a tylko takie problemy znalazłem w google.
Ma ktoś jakieś pomysły?