Zdanek
17.12.2004, 14:36:07
Być może jest to proste ale jestem początkujący i nie mogę sobie z tym
poradzić.
W Visual C++ zrobiłem aplikację do odczytu i wpisywania nowych rekordów do
bazy na SQL Server 2000.
Tabela w SQL Server nazywa się Dane i zawiera 3 pola: ID z auto
inkrementacją, nazwisko i imię. Te 3 pola są odwzorowane w mojej aplikacji.
Wszystko odbywa się przez ODBC. Tabela czyta się pięknie. W aplikacji mam
możliwość przeglądania i poprawiania rekordów, lecz kiedy próbuję dodać nowy
dostaję komunikat: Cannot insert explicit value for identity column in table
'Dane' when IDENTITY_INSERT is set to OFF. Piszę więc skrypt:" set
identity_insert [dbo].[Dane] on "i ... nie działa.
Jakie jest rozwiązanie? Może coś źle robię. Pomocy
Tomek
polibode
20.12.2004, 11:43:25
Może pokażesz jak dodajesz nowy rekord w bazie?
Ponieważ pisząć SET widzę, że może modyfikujesz
pozdr
Zdanek
22.12.2004, 21:48:16
Żeby dodać nowy rekord wpisałem tylko metodę w Visual C++. Tzn Pobrałem tylko numer ostatniego rekordu Dane. Czyli robię to w następujący sposób
long Nowy = m_pSet->OstatniID()+1; OstatniID to metoda która zwraca ostatni rekord, następnie robię
m_pSet->AddNew();
m_pSet->m_IDAdresu = Nowy;w tym miejscu ustawia identyfikator w nowym rekordzie - podejrzewam że tu jest błąd ale nie znam innej metody na dodawanie rekordu, dalej jest:
m_pSet->Update();
m_pSet->Requery();
m_pSet->MoveLast();
UpdateData(FALSE);
Będę wdzięczny za każde sugestie
Tomek
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.