Panowie musze jutro oddac projekt z delphi połaczony z bazą accessa, połaczyłem sie bez problemu wyświetlam rekordy z kwerend w gridzie, ale nie mogę sobie poradzić z dodawaniem i ort! rekordów. Prosze o pomoc gg: 6034809 [???]
To zamiast SELECT użyj INSERT lub DELETE.
Aż tak bardzo zaawansowany to ja nie jestem, robię wyszukiwanie poprzez query filter. Nie wiem jak wsadzić kawałek delphi do kodu sql. Np. edit1.text gdzie ma być
SELECT Pracownik.Id_pracownik, Pracownik.Imie, Pracownik.Nazwisko
FROM Pracownik
WHERE (((Pracownik.Imie)="edit1.text"));
[???]
Siedze nad tym juz kilka dni już mi brak cierpliwości.
edit:
SELECT Grafik.id_terminu, Pracownik.Imie, Pracownik.Nazwisko, Grafik.Data_rozpoczecia, Grafik.Godzina_rozpoczecia, Grafik.Godzina_zakonczenia, Grafik.Id_pracownik
FROM Grafik LEFT JOIN Pracownik ON Grafik.Id_pracownik = Pracownik.Id_pracownik
WHERE (((Pracownik.Nazwisko)="mazur"));
co robie źle w accesie jest ok, a w delphi przy query wyskakuje General SQL error. i [Microsoft][Sterownik ODBC Microsoft Access ] Za mało parametrów. Oczekiwano 1.
Jeżeli usunę linijkę where wtedy jest ok ale wyświetla mi całąliste, nie chce używać filter bo nie o to chodzi.
Musisz zastosować konkatenację - czyli łączenie stringów.
Cały blok wykonujący zapytanie mógłby wyglądać tak
Query1.Close;//zamknięcie aktywnego komponentu Query - konieczne przy wymianie zapytania:)
Query1.SQL.Clear;//czyszczenie właściwości SQL
//dodawanie zapytania
Query1.SQL.Add('SELECT Pracownik.Id_pracownik, Pracownik.Imie, Pracownik.Nazwisko FROM Pracownik WHERE Pracownik.Imie='+edit1.text);
Query1.Open;//wykonanie zapytania
daje ci linka do artykułu o Interbase Zmienisz IBQuery(lub ADOQuery) na Query i podstawowe operacje będą śmigać
http://4programmers.net/article.php?id=587
http://4programmers.net/article.php?id=627
Oki moge usuwać rekordy, ale nie moge dodawać nie wyskakują żadne błedy ale też nic się nie dzieje nic się nie dodaje, zapewne jakis głupi bład.
query3.close;
query3.SQL.Clear;
Query3.SQL.Add('INSERT INTO Pracownik (Id_pracownik) Select Pracownik.Id_pracownik FROM pracownik WHERE Id_pracownik= :Id_pracownik');
query3.ParamByName('Id_pracownik').AsString:='AJanko01';
query3.ExecSQL;
query3.Close;
bo składnia insert wygląda kompletnie inaczej.
INSERT INTO tabela VALUES ("pierwsza kolumna",2,3,"czwarta kolumna")
więcej masz na dev.mysql.com
a nie dzieje się nic, bo nigdzie nie sprawdzasz, czy zapytanie się powiodło.
masz racje działa tylko teraz jak zrobić modyfikacje rekordu tabeli przy pomocy id_pracownik np.
wyciągnij pierwszym zapytaniem dane z jednej tabeli do zmiennych w delphi, a potem wepchnij te dane do drugiego zapytania.
zember - dla spokoju ducha powinieneś przeczytać np. tę stronkę http://db.tigra-system.pl/art.php?id=9