🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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
#82829
Author: konsul41
Date: Fri, 28 Jul 2017 09:12
56 lines
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
#82830
Author: Roman Tyczka
Date: Fri, 28 Jul 2017 20:29
22 lines
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
#82831
Author: wloochacz
Date: Mon, 31 Jul 2017 09:17
26 lines
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
#82832
Author: konsul41
Date: Mon, 31 Jul 2017 12:18
22 lines
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
#82833
Author: J-23
Date: Mon, 31 Jul 2017 16:54
16 lines
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