Od pewnego czasu główkuje nad usunięciem wybranego rekordu z struktury. Mam bazę danych (w C++) uczniów i załóżmy, że chciałbym usunąć kowalskiego który jest na 8 pozycji. Wiem, że mu podać który element chce skasować (8), skopiować całą bazę danych z pominięciem 8 elementu i nadpisać tą starą. Brzmi to dość prosto w teorii ale w praktyce nie mam zielonego pojęcia jak ma to wyglądać.
Kasowanie wybranego rekordu w C++
- Rejestracja: dni
- Ostatnio: dni
Wysłać do bazy żądanie wykonania odpowiedniego query
delete from tabel1 where col1=X
- Rejestracja: dni
- Ostatnio: dni
- Postów: 51
Mam bazę napisaną w C++ :) a Twoja instrukcja chyba dotyczy SQL (choć nie wiem bo nigdy nie miałem z tym językiem do czynienia). Szkoda, że nie można zrobić tego w tak prosty sposób.
- Rejestracja: dni
- Ostatnio: dni
Nie ma czegoś takiego jak baza danych w C++. Więc dokładnie napisz jak masz te dane składowane. Czy w jakimś pliku, który odczytujesz/zapisujesz w C++? Czy dane to obiekty (struktury/klasy) C++ na jakiejś liście/tablicy?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 51
Źle się wyraziłem :) Program wzorowany jest na bazie danych. Ogólnie oparty jest na strukturze. Jedna struktura z podziałem na rekordy:
struct uczen
{
int nr; /// numer w bazie
string imie;
string nazwisko;
string klasa;
string zach;
string srednia;
};
Wszystkie Dane zapisywane są do pliku txt
Wygląda to mniej więcej tak:
1 <-- Nr rekordu
Mxxx <-- Imie
Laxxxx <-- Naziwsko
2Ti <-- klasa
Dobre <--zachowanie
4.05 <-- srednia
- Rejestracja: dni
- Ostatnio: dni
Wczytaj wszystkie rekordy a potem na 8 nadpisz 9, na 9 nadpisz 10, ..., zmniejsz tablicę o 1 i zapisz do pliku z powrotem
- Rejestracja: dni
- Ostatnio: dni
...albo wczytaj ostatni rekord, zapisz go w miejscu ósmego i obetnij ostatni rekord z pliku (truncate) - tak jest najszybciej i najłatwiej.