🚀 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@wp.pl" Fri, 28 Jul 2017 11:12
Problem z wpisaniem sql-a
#81099
Author: "konsul41@wp.pl"
Date: Fri, 28 Jul 2017 11:12
56 lines
1705 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
#81100
Author: Roman Tyczka
Date: Fri, 28 Jul 2017 22:29
21 lines
541 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
#81101
Author: wloochacz
Date: Mon, 31 Jul 2017 11:17
25 lines
762 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
#81102
Author: "konsul41@wp.pl"
Date: Mon, 31 Jul 2017 14:18
22 lines
583 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
#81103
Author: J-23
Date: Mon, 31 Jul 2017 18:54
15 lines
340 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