Thread View: pl.comp.lang.delphi.bazy-danych
5 messages
5 total messages
Started by konsul41
Fri, 28 Jul 2017 09:12
Problem z wpisaniem sql-a
Author: konsul41
Date: Fri, 28 Jul 2017 09:12
Date: Fri, 28 Jul 2017 09:12
56 lines
2571 bytes
2571 bytes
Delphi XE2
Zeosy
Mam dziwny problem z wpisywaniem SQL do Query
CREATE OR REPLACE FUNCTION dajmiesieczneodpisyzarok(
IN rok character varying,
IN id_srodektrwaly integer)
RETURNS TABLE(id_srodektrwaly numeric, "styczeń" numeric, luty
numeric, marzec numeric, "kwiecień" numeric, maj numeric, czerwiec
numeric, lipiec numeric, "sierpień" numeric, "wrzesień" numeric,
"październik" numeric, listopad numeric, "grudzień" numeric) AS
$BODY$
SELECT *
FROM crosstab( 'select
id_srodektrwaly::numeric,miesiac::numeric,miesodpis::numeric from
planamortyzacji where rok='''||$1||''' and id_srodektrwaly='''||$2||'''
order by id_srodektrwaly')
AS final_result(id_srodektrwaly numeric,styczeń
numeric,luty numeric,marzec numeric,kwiecień numeric,maj
numeric,czerwiec numeric,lipiec numeric,sierpień numeric,wrzesień
numeric,październik numeric,listopad numeric,grudzień numeric);
$BODY$
LANGUAGE sql VOLATILE
COST 100
ROWS 1000;
ALTER FUNCTION dajmiesieczneodpisyzarok(character varying, integer)
OWNER TO wij;
W PGadmin funkcja zapisuje się prawidłowo i działa zgodnie z moimi
oczekiwaniami.
Niestety map problem aby wpisać ją do bazy za pomocą Zeosów
nie zależnie czy wpisuję ją bespośrednio
Query.SQl.text:='...';
czy za pomocą resource string
resourcestring
sql='...';
Query.SQL.Text:=sql;
czy za pomocą
Query.Close;
Query.SQL.Clear;
Query.SQL.add('...');
ciągle dostaję Access Violation
to
Query.SQL.add('SELECT * FROM planamortyzacji;');
oczywiście nie przynosi błędów.
Co jest nie tak w powyższym SQl, że nie chce wejść?
Ewentualnie jak ominąć problem czyli tworzyć ją poza zeosami?
Re: Problem z wpisaniem sql-a
Author: Roman Tyczka
Date: Fri, 28 Jul 2017 20:29
Date: Fri, 28 Jul 2017 20:29
22 lines
1347 bytes
1347 bytes
On Fri, 28 Jul 2017 11:12:09 +0200, konsul41@wp.pl wrote:
> Delphi XE2
> Zeosy
>
> Mam dziwny problem z wpisywaniem SQL do Query
>
>
> ciągle dostaję Access Violation
> to
> Query.SQL.add('SELECT * FROM planamortyzacji;');
> oczywiście nie przynosi błędów.
Wygląda to na błąd w Zeosach, zainstaluj Eurekalog lub Madexcepta i zobacz
co ten błąd powoduje. Może to być drobiazg typu niezainicjowany wewnętrzny
obiekt querego.
Najpierw jednak warto sprawdzić czy używasz aktualnej wersji Zeosa.
--
pozdrawiam
Roman Tyczka
Re: Problem z wpisaniem sql-a
Author: wloochacz
Date: Mon, 31 Jul 2017 09:17
Date: Mon, 31 Jul 2017 09:17
26 lines
1781 bytes
1781 bytes
W dniu 2017-07-28 o 22:29, Roman Tyczka pisze:
> On Fri, 28 Jul 2017 11:12:09 +0200, konsul41@wp.pl wrote:
>
>> Delphi XE2
>> Zeosy
>>
>> Mam dziwny problem z wpisywaniem SQL do Query
>>
>>
>> ciągle dostaję Access Violation
>> to
>> Query.SQL.add('SELECT * FROM planamortyzacji;');
>> oczywiście nie przynosi błędów.
>
> Wygląda to na błąd w Zeosach, zainstaluj Eurekalog lub Madexcepta i zobacz
> co ten błąd powoduje.
Nie rozumiem po co ma instalować Eurekę czy cokolwiek innego w tym
konkretnym przypadku, skoro to samo dostanie uruchamiając program w IDE
w trybie debug?
Kod się zatrzyma na wyjątku (a ZEOS ma źródła, a więc jeszcze lepiej), a
CallStack i rejestry procesora dostępne pod ręką, a więc...
/ciach/
--
wloochacz
Re: Problem z wpisaniem sql-a
Author: konsul41
Date: Mon, 31 Jul 2017 12:18
Date: Mon, 31 Jul 2017 12:18
22 lines
1641 bytes
1641 bytes
> /ciach/
>
Pogrzebałem trochę pośledziłem
i wywala się w funkcji
function TZTokenizer.TokenizeStreamToList(Stream: TStream;
Options: TZTokenOptions): TStrings;
ma problem ze znakiem ::
to
FROM crosstab( 'select id_srodektrwaly::numeric ...
zmieniłem
na
Query.SQL.add(' FROM crosstab( ''select ');
Query.SQL.add(' CAST(id_srodektrwaly AS numeric )');
...
Nie wykłada się tutaj ale i tak nie daje sobie rady z SQL-em w ExecSQL
Problem jest w okolicach Unicode i podziału stringa na "Tokeny" może nie
radzi sobie z "zagnieżdżonym" SQL.
Re: Problem z wpisaniem sql-a
Author: J-23
Date: Mon, 31 Jul 2017 16:54
Date: Mon, 31 Jul 2017 16:54
16 lines
1637 bytes
1637 bytes
W dniu 31.07.2017 o 14:18, konsul41@wp.pl pisze: > >> /ciach/ >> > Pogrzebałem trochę pośledziłem > i wywala się w funkcji > function TZTokenizer.TokenizeStreamToList(Stream: TStream; > Options: TZTokenOptions): TStrings; > > Może spróbuj opisać problem i zamieścić go tutaj http://zeoslib.sourceforge.net/ Pozdrawiam J-23
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads