[Delphi] Dlaczego zamiast string mam napis MEMO

Odpowiedz Nowy wątek
2006-10-30 11:59
0

Mam sobie raporcik Qreports i wybieram z bazy zapytanie.
Baza to POSTGRES: mam takie przykladowe zapytanie:

SELECT '*' || id || '*' FROM orders;

Wynik w bazie jest prawidlowy bo jest taki:
1
2
3
4
ale kiedy te same dane wstawiam do komponentu DBText lub DBEdit
to mam napisz (MEMO) ??? czy to trzeba jakos rzutowac te dana na string czy jak?
Ale kiedys tak zrobilem i dobrze mi wysweitlalo dane nie wiem co jest teraz.
pole w bazie jest typu INT4

Pozostało 580 znaków

2006-10-30 13:53
0
masterO napisał(a)

ale kiedy te same dane wstawiam do komponentu DBText lub DBEdit

Jak wstawiasz? To są komponenty bazodanowe. Łączysz je z odpowiednimi kontrolkami, z których one sobie pobierają to, co chcą, ponieważ wiedzą z jakiego pola mają korzystać. W takiej sytuacji zrobiłbym nowe pole(w DataSecie), jako Calculated. Następnie w zdarzeniu OnCalcFields, coś w ten deseń:

pole_calculated:=''+pole_id+'';

No i kontrolkom DBText, czy DBEdit ustawiasz jako pole bazodanowe, właśnie to pole typu calculated

Pozostało 580 znaków

2006-10-30 19:55
0
SELECT CAST('*' || id || '*') as varchar(30) FROM orders;

a kolega Juhas ma za zadanie wytłumaczyć dlaczego tak :)


- Ciemna druga strona jest.
- Nie marudź Yoda, tylko jedz tego tosta.
Google NIE GRYZIE!
Pomogłem - kliknij

Pozostało 580 znaków

2006-10-31 11:34
0
Misiekd napisał(a)
SELECT CAST('*' || id || '*') as varchar(30) FROM orders;

a kolega Juhas ma za zadanie wytłumaczyć dlaczego tak :)

ekhm, za karę? ;)

Otóż ID jest zapewne typu BIGINT. Gwiazdki jak wiadomo są varcharem. W związku z tym trzeba przeprowadzić konwersję na typ varchar. A konwersję robi się właśnie w taki sposób, jak wyżej :)

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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