ADOCommand - Prośba o pomoc

0

Witajcie mam prosbe o mala podpowiedz...

Pisze maly programik do obslugi kontakow i hasel osobistych.. do prywatnego uzytku...

Mam problem przy insercie do bazy.

Mam 4 edity button i kodzik :
Baza SQL 2005 Enterprise.

with ADOCommandAdd do
begin

CommandText := 'INSERT INTO adresy VALUES (:imie, :nazwisko, :adres, :email)';
Parameters.ParamByName('imie').Value := add_imie.Text;
Parameters.ParamByName('nazwisko').Value := add_nazwisko.Text;
Parameters.ParamByName('adres').Value := add_adres.Text;
Parameters.ParamByName('email').Value := add_email.Text;
Execute();
end;

Działa tylko przy dodawaniu liczb jak w edity wcisne jakies litery wywala bląd : EOleExeption with message 'Aplikacja używa wartości niewłaściwego typu dla bieżącej operacj...'

Czuje że chodzi tu o zapis INSERTA który w tej formie nie uwzględnia STRINGOW czy cos takiego.

Jakby ktoś fachowo mógł cos podpowiedziec bede wdzieczny,

Pozdrawiam

0

Obra juz sobie poradzilem, chociaż musze przyznac ze sam sie zaskoczylem... ;)

Jeżeli napotkacie na powyższy problem to musicie poprawić swoje zapytanie:

Zamiast

CommandText := 'INSERT INTO adresy VALUES (:imie, :nazwisko, :adres, :email)';

Zrobic

CommandText := 'INSERT INTO adresy (imie, nazwisko, adres, email) VALUES (:imie, :nazwisko, :adres, :email)';

0

Może należałoby doprecyzować, żeby inni ludzie zrozumieli na czym polegał błąd.
Jeżeli w insert into pomijamy po nazwie tabeli nazwy kolumn to values musimy podać w takiej kolejności, w jakieś zdefiniowane są kolumny w tabeli. Mniejszą liczbę wartości niż kolumn możemy podać tylko, jeśli kolumny dla których wartości nie zostały podane są nullowalne lub mają wartości domyślne.
Jeśli chcemy podać wartości w innej kolejności, niż zdefiniowane w tabeli, musimy jawnie podać nazwy kolumn po nazwie tabeli.

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