dbedit i pole numeryczne

0

Witam
Chciałem napisać programik który łączył by się do oracle i coś tam robił.
Na oraclu mam tabelę w które jest m.in. pole o wartości number.
Na formie wstawiam dbedity wszystko ładnie/pieknie (ClietDataSety, dataSource itp)
Gdy jednak wypełnie to pole numeryczne wywala mi komunikat:
Project raised... 'ORA-01722: invalid number'...

Czyli do pola number probuje wstawic stringi mimo że w dbedita moge wpisac tylko cyfry. Czy gdzieś musze jeszcze ustawic w dbedicie ze to pole ma byc integer?
Korzystam ze standardowych akcji w delphi bo tak wydawało mi się że będzie szybciej.

0

mozliwe, ze dbedit przyjmuje tylko stringi jako parametr. wtedy mozesz dla datasource przypisanego do dbedit dodac pole field o nazwie takiej jak odczytywany element w dbedit i w zdarzeniu pola field dokonac konwersji z liczby na string. Podobnie do ponizszego:

procedure TForm1.ADOTable2PathGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
if sender.IsNull then Text:='' else
Text := Copy(Sender.AsString, 1, 100);
end;

ten kod konwertuje typ Memo na string

0

co konkretnie wpisujesz?

0
Misiekd napisał(a)

co konkretnie wpisujesz?

W pole w kórym baza jest na number moge wpisać tylko cyfry i to wpisuje. Ale delphi tworzy zapytanie tak:
insert into tabelka values ('Imie', 'Nazwisko', '45')

zamiast

insert into values ('Imie', 'Nazwisko', 45) i tu jest blad

0

nikt nie potrafi mi pomoc? Nie wierze ze nie spotkaliscie sie z tym problemem przy aplikacjach bazodanowych.

0

Spróbuj napisać coś takiego

Var A :  Integer;
…
A := 54 ;
insert into tabelka values ('Imie', 'Nazwisko', a);

nie znam się na bazodanowych aplikacjach ale może pomorze :)

0
mboniek napisał(a)

pomorze :)

a ja śląsk i co z tego??

0

nadal nic nie mam na ten emat. A Wy ?

0

Witam, może ten ko Ci pomoże:
Query1.Close;
Query1.Sql.Clear;
Query1.Sql.Add('insert into tabelka values ("Imie","Nazwisko",:A)');
Query1.UnPrepare;
Query1.ParamByName('A').AsInteger:=StrToInt(DBText1.Caption);
Query1.Prepare;
Query1.ExecSQL;

0

Niestety nie oto mi chodzi. Tak właśnie zrobiłem. Chciałbym poprosu użyć standardową akcję z delphi. Żeby było szybciej. Tak jak napisąles musze pisać inserty, updaty itp. Masa kodu :/

0

Z tego co zrozumiałem dla pola WIEK masz ustawione number czyli zakładasz możliwość wpisania czegoś takiego -> 45,5
Zerknij tutaj http://4programmers.net/Forum/viewtopic.php?id=106252

0

Super właśnie o to chodziło. Dzięki wielkie. Działa wszystko. :)

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