Baza danych Access w Delphi 7

0

Witam forumowiczów. Chciałbym was prosić o pomoc związaną z moją bazą danych w Delphi. Jest to wypożyczalnia filmów. Mam problem z dodawaniem i edycją rekordów. Wszystko połączone przez ODBC.Bardzo proszę o pomoc. W załącznikach wysyłam moją bazę w Access oraz w Delphi ;) Z góry dzięki wam za pomoc. Pozdro

0

a jaki to masz ten problem?

0

Gdy wypełniam w tym moim skromnym edytorze dane klienta i klikam dodaj to wyskakuje błąd którego nie rozumiem, a co do aktualizowania rekordów przez UPDATE to niby jest wszystko OK ale jak edytuje np. imie i klikam zapisz to nie aktualizuje się rekord. Używam DBGrida do odczytu tabel z Accessa

1

<ironia>myślę, że jakbyś ten błąd wkleił tutaj to jest szansa, że ktoś go "zrozumie"</ironia>. Nie masz podstawowej umiejętności umieszczania w zadawanych pytaniach wiedzy potrzebnej do ich rozwiązania. Nikomu się też nie będzie chciało otwierać Twojego projektu, sprawdzać co nie działa i tego naprawiać bo ktoś może nie mieć jakichś komponentów albo mieć inną wersję delphi czy jeszcze coś innego. Zauważ, że to Ty chcesz pomocy i to Ty musisz się wysilić aby zapewnić potencjalnemu "odpowiadaczowi" jak najwięcej informacji o Twoim problemie. Do takich informacji bezwzględnie należą:

  • komunikaty błędów, jeśli jakieś występują, wraz z kawałkiem kodu, który je powoduje
  • kawałki kodu, które powinny działać a nie działają z opisem co mają robić a co robią
  • jeśli program dotyczy bazy danych to DDL problematycznych tabel/procedur/inne
0

A więc kod do dodawania nowego klienta do mojej bazy poprzez Delphi:

//DODAWANIE NOWEGO KLIENTA
procedure TForm2.BDodajClick(Sender: TObject);
var id:string;
begin
 id:=FormatDateTime('yyyymmdd_hhmmss',Now);
 ADOQuery4.Close;
 ADOQuery4.SQL.Clear;

 ADOQuery4.SQL.Add('INSERT INTO Klient(ID_Klienta,Imie,Nazwisko,Pesel,Miasto,Ulica,Aktywny) '+
 'VALUES('''+id+''','''+EImie.Text+''','''+ENazwisko.Text+''','''+EPesel.Text+''','''+CBUlica.Items.Strings[CBUlica.ItemIndex]+''','''+CBm.Items.Strings[CBm.ItemIndex]+''','''+CBAktywny.Items.Strings[CBAktywny.ItemIndex]+''')');
 ADOQuery4.ExecSQL;
 ADOConnection1.Connected:=False;
 ADOConnection1.Connected:=True;
 BDodaj.Click;

end;

Nie wiem w czym tkwi błąd. Po odpaleniu programu wyskakuję oto taki błąd:

dodanie znacznika <code class="delphi"> - furious programming

0

jeśli win vista lub nowszy to odpal program jako admin i zobacz czy zadziała

0

Wiesz co to akurat robię na XP - wirtualna maszyna. Normalnie mam Win 7 ;)

0

Najczęstszą przyczyną tego błędu jest brak uprawnień do pliku bazy danych

0

Nie mam czasu grzebać ale po zerknięciu na bazę wygląda że ona jest źle zaprojektowana wszystkie pola typu Tekst (łącznie z tymi ID) nie ma pola Ulica, Miasto są pola ID_Ulicy i ID_Miasta z (nazwy ulic są w innej tabeli) a nie ma utworzonych relacji, kwerend ... normalnie jakaś masakra.

0
ADOConnection1.Connected:=False;
 ADOConnection1.Connected:=True; <- czy to  ta linia generuje błąd ????

nie znam ADO , ale z tego co wiem z doświadczenia to w Delphi w innych bazodanowych komponentach metoda '.execsql' jest skojarzona z 'UPDATE" lub 'INSERT'
a '.open' lub inaczej '.connecetd=true' związane jest z 'SELECT'
w Twoim kodzie zamykasz połączenie i ponownie je otwierasz nie przebudowując zapytania , które wciąż jest typu 'insert' , moim zadaniem to może generować wyjątek

0

@kAzek słuchaj, facet ( nauczyciel ) kazał nam pousuwać relacje i klucze główne które były ustawione na autonumer kazał zmienić na tekst bo wyskakiwał błąd jakiś że nie zgadzają się typy

0

Mozliwe. Ale potrzebuje z tym pomocy bo nie mam pojecia jak to zrobic a mam to na zaliczenie mozna powiedziec.

0

chodziło mi że facet od informatyki ( nauczyciel ) przepraszam że to tak wyglądało @_13th_Dragon . Dziękuję @grzegorz_so

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