Sybase NNTP forums - End Of Life (EOL)

The NNTP forums from Sybase - forums.sybase.com - are now closed.

All new questions should be directed to the appropriate forum at the SAP Community Network (SCN).

Individual products have links to the respective forums on SCN, or you can go to SCN and search for your product in the search box (upper right corner) to find your specific developer center.

ISQL Option

4 posts in iAnywhere General Discussion (German) Last posting was on 2009-01-08 08:31:09.0Z
SGollan Posted on 2009-01-06 08:44:13.0Z
Sender: 218b.49631908.1804289383@sybase.com
From: SGollan
Newsgroups: ianywhere.public.german.general
Subject: ISQL Option
X-Mailer: WebNews to Mail Gateway v1.1t
Message-ID: <496319dd.21a8.1681692777@sybase.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="ISO-8859-1"
Content-Transfer-Encoding: quoted-printable
NNTP-Posting-Host: 10.22.241.41
X-Original-NNTP-Posting-Host: 10.22.241.41
Date: 6 Jan 2009 00:44:13 -0800
X-Trace: forums-1-dub 1231231453 10.22.241.41 (6 Jan 2009 00:44:13 -0800)
X-Original-Trace: 6 Jan 2009 00:44:13 -0800, 10.22.241.41
Lines: 4
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub ianywhere.public.german.general:485
Article PK: 1128

Hallo,

gibt es die Möglichkeit in SQL 11 bei Dezimalzahlen das
Komma durch einen Punkt zu ersetzen?


"Volker Barth" <No_VBarth Posted on 2009-01-06 11:17:28.0Z
From: "Volker Barth" <No_VBarth@Spam_GLOBAL-FINANZ.de>
Newsgroups: ianywhere.public.german.general
References: <496319dd.21a8.1681692777@sybase.com>
Subject: Re: ISQL Option
Lines: 110
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1933
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1933
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <49633dc8$1@forums-1-dub>
Date: 6 Jan 2009 03:17:28 -0800
X-Trace: forums-1-dub 1231240648 10.22.241.152 (6 Jan 2009 03:17:28 -0800)
X-Original-Trace: 6 Jan 2009 03:17:28 -0800, vip152.sybase.com
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub ianywhere.public.german.general:486
Article PK: 1129


<SGollan> wrote in news:496319dd.21a8.1681692777@sybase.com...
>>Hallo,
>>
>>gibt es die Möglichkeit in SQL 11 bei Dezimalzahlen das
>> Komma durch einen Punkt zu ersetzen?

Meines Wissens nicht. Laut Sybase ist Zahlenformatierung eine
Frontend-Angelegenheit.

Anbei eine Funktion, die dies vornimmt - inkl. Tausendertrennzeichen:

HTH
Volker


----------------------------------------------------------------------------
-
-- Funktion zum Formatieren von Zahlen in deutscher Konvention
--
-- Wandelt Dezimalpunkt in Dezimalkomma um, setzt Tausendseparatoren ein
-- und gibt Zahlen mit der angegebenen Anzahl Nachkommastellen aus.
--
-- Sofern der Eingabewert keine gültige Zahl ist, wird NULL geliefert.
----------------------------------------------------------------------------
-

create function dbo.FKTN_FormatNumber(strValue varchar(100),
nCntDecimalPlaces int default 2)
returns varchar(200)
deterministic
begin
declare strReturn varchar(200);
declare i integer;
declare j integer;

-- Return NULL for non-numeric values
if isnumeric(strValue) = 0 then
return null;
end if;

-- Round/Extend to the given number of decimal places and trim all
whitespace
if nCntDecimalPlaces < 0 then
set nCntDecimalPlaces = 0;
end if;

set strValue = str(strValue, 100, nCntDecimalPlaces);
set strValue = trim(strValue);
set i = length(strValue);
set j = 0;

-- Insert thousand separators
while i > 0 loop
set strReturn = substr(strValue, i, 1) || strReturn;
if (locate(strReturn, '.') > 0) or (locate(strValue, '.') = 0) then
if substr(strValue, i, 1) <> '.' then
set j = j + 1;
end if;
end if;
if (j = 3) and (i > 1) then
set strReturn = ',' || strReturn;
set j = 0;
end if;
set i = i - 1;
end loop;

-- Switch point and comma
set strReturn = replace(strReturn, '.', '|');
set strReturn = replace(strReturn, ',', '.');
set strReturn = replace(strReturn, '|', ',');

return strReturn;
end;



-- Testfälle
/*
select
FKTN_FormatNumber(1234.56),
FKTN_FormatNumber(1234.00),
FKTN_FormatNumber(12345678901234567890.1234567890),
FKTN_FormatNumber(0.00),
FKTN_FormatNumber(0),
FKTN_FormatNumber(-.07),
FKTN_FormatNumber(-1234.5678),
FKTN_FormatNumber('abcdef'),
FKTN_FormatNumber(null);

select
FKTN_FormatNumber(1234.56789, 2),
FKTN_FormatNumber(1234.56789, 5),
FKTN_FormatNumber(1234.56789, 0),
FKTN_FormatNumber(1234.56789, -1),
FKTN_FormatNumber(1234.56789, 1),
FKTN_FormatNumber(1234.56789, 3);

select
FKTN_FormatNumber(1234, 2),
FKTN_FormatNumber(1234, 5),
FKTN_FormatNumber(1234, 0),
FKTN_FormatNumber(1234, -1),
FKTN_FormatNumber(1234, 1),
FKTN_FormatNumber(1234, 3);
*/


Dietrich Posted on 2009-01-07 09:58:19.0Z
Subject: Re: ISQL Option
From: Dietrich <Dietrich@ianywhere.sybase.germany>
Content-Type: text/plain; format=flowed; delsp=yes; charset=iso-8859-15
MIME-Version: 1.0
Newsgroups: ianywhere.public.german.general
References: <496319dd.21a8.1681692777@sybase.com> <49633dc8$1@forums-1-dub>
Content-Transfer-Encoding: 8bit
Message-ID: <op.undsnihtoacwen@dlauterxp>
User-Agent: Opera Mail/9.63 (Win32)
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Date: 7 Jan 2009 01:58:19 -0800
X-Trace: forums-1-dub 1231322299 10.22.241.152 (7 Jan 2009 01:58:19 -0800)
X-Original-Trace: 7 Jan 2009 01:58:19 -0800, vip152.sybase.com
Lines: 138
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub ianywhere.public.german.general:487
Article PK: 1131

Hallo,

augenblicklich ist es in der Tat so, dass auf Grund der Sprache, in der
ISQL angezeigt, auch die formatierung der Zahlen stattfindet.
Das in einer zukÃŒnftigen Version ggf. die Regional-Settings fÃŒr die
Ausgabe herangezogen wird, kann ich nicht ausschließen.

Wenn man bei ISQL (SQL Anywhere 11) die Zahlen im deutschen Format
ausgegeben will, sollte die Sprachumgebung fÃŒr SQL Anywhere auf Deutsch
eingestellt sein. Wie die Sprachumgebung eingestellt wird, ist im Handbuch
unter dem folgenden Kapitel beschrieben.
SQL Anywhere Server - Datenbankadministration » Konfiguration Ihrer
Datenbank » Internationale Sprachen und ZeichensÀtze » NÀheres zu
Sprachumgebungen » NÀheres zur Sprache der Sprachumgebung
bzw.
SQL Anywhere Server - Database Administration » Configuring Your Database
» International languages and character sets » Understanding locales »
Understanding the locale language


Gruß,

Dietrich

On Tue, 06 Jan 2009 12:17:28 +0100, Volker Barth

<No_VBarth@spam_global-finanz.de> wrote:

>
> <SGollan> wrote in news:496319dd.21a8.1681692777@sybase.com...
>>> Hallo,
>>>
>>> gibt es die Möglichkeit in SQL 11 bei Dezimalzahlen das
>>> Komma durch einen Punkt zu ersetzen?
>
> Meines Wissens nicht. Laut Sybase ist Zahlenformatierung eine
> Frontend-Angelegenheit.
>
> Anbei eine Funktion, die dies vornimmt - inkl. Tausendertrennzeichen:
>
> HTH
> Volker
>
>
> ----------------------------------------------------------------------------
> -
> -- Funktion zum Formatieren von Zahlen in deutscher Konvention
> --
> -- Wandelt Dezimalpunkt in Dezimalkomma um, setzt Tausendseparatoren ein
> -- und gibt Zahlen mit der angegebenen Anzahl Nachkommastellen aus.
> --
> -- Sofern der Eingabewert keine gÃŒltige Zahl ist, wird NULL geliefert.
> ----------------------------------------------------------------------------
> -
>
> create function dbo.FKTN_FormatNumber(strValue varchar(100),
> nCntDecimalPlaces int default 2)
> returns varchar(200)
> deterministic
> begin
> declare strReturn varchar(200);
> declare i integer;
> declare j integer;
>
> -- Return NULL for non-numeric values
> if isnumeric(strValue) = 0 then
> return null;
> end if;
>
> -- Round/Extend to the given number of decimal places and trim all
> whitespace
> if nCntDecimalPlaces < 0 then
> set nCntDecimalPlaces = 0;
> end if;
>
> set strValue = str(strValue, 100, nCntDecimalPlaces);
> set strValue = trim(strValue);
> set i = length(strValue);
> set j = 0;
>
> -- Insert thousand separators
> while i > 0 loop
> set strReturn = substr(strValue, i, 1) || strReturn;
> if (locate(strReturn, '.') > 0) or (locate(strValue, '.') = 0) then
> if substr(strValue, i, 1) <> '.' then
> set j = j + 1;
> end if;
> end if;
> if (j = 3) and (i > 1) then
> set strReturn = ',' || strReturn;
> set j = 0;
> end if;
> set i = i - 1;
> end loop;
>
> -- Switch point and comma
> set strReturn = replace(strReturn, '.', '|');
> set strReturn = replace(strReturn, ',', '.');
> set strReturn = replace(strReturn, '|', ',');
>
> return strReturn;
> end;
>
>
>
> -- TestfÀlle
> /*
> select
> FKTN_FormatNumber(1234.56),
> FKTN_FormatNumber(1234.00),
> FKTN_FormatNumber(12345678901234567890.1234567890),
> FKTN_FormatNumber(0.00),
> FKTN_FormatNumber(0),
> FKTN_FormatNumber(-.07),
> FKTN_FormatNumber(-1234.5678),
> FKTN_FormatNumber('abcdef'),
> FKTN_FormatNumber(null);
>
> select
> FKTN_FormatNumber(1234.56789, 2),
> FKTN_FormatNumber(1234.56789, 5),
> FKTN_FormatNumber(1234.56789, 0),
> FKTN_FormatNumber(1234.56789, -1),
> FKTN_FormatNumber(1234.56789, 1),
> FKTN_FormatNumber(1234.56789, 3);
>
> select
> FKTN_FormatNumber(1234, 2),
> FKTN_FormatNumber(1234, 5),
> FKTN_FormatNumber(1234, 0),
> FKTN_FormatNumber(1234, -1),
> FKTN_FormatNumber(1234, 1),
> FKTN_FormatNumber(1234, 3);
> */
>
>
>
>


"Volker Barth" <No_VBarth Posted on 2009-01-08 08:31:09.0Z
From: "Volker Barth" <No_VBarth@Spam_GLOBAL-FINANZ.de>
Newsgroups: ianywhere.public.german.general
References: <496319dd.21a8.1681692777@sybase.com> <49633dc8$1@forums-1-dub> <op.undsnihtoacwen@dlauterxp>
Subject: Re: ISQL Option
Lines: 162
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2800.1933
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1933
NNTP-Posting-Host: vip152.sybase.com
X-Original-NNTP-Posting-Host: vip152.sybase.com
Message-ID: <4965b9cd$1@forums-1-dub>
Date: 8 Jan 2009 00:31:09 -0800
X-Trace: forums-1-dub 1231403469 10.22.241.152 (8 Jan 2009 00:31:09 -0800)
X-Original-Trace: 8 Jan 2009 00:31:09 -0800, vip152.sybase.com
Path: forums-1-dub!not-for-mail
Xref: forums-1-dub ianywhere.public.german.general:488
Article PK: 1132

Interessante Änderung - war mir noch gar nicht aufgefallen:
In DBISQL 10.0.1.3750 werden Dezimalzahlen (z.B. Typ double) in der üblichen
US-Formatierung angezeigt (z.B. "1,234.56"), in DBISQL 11.0.0.1526 aber in
der lokalen (hier deutschen) Formatierung (z.B. "1.234,56").

Ändert aber natürlich nichts daran, daß in SQL-Statements für Dezimalzahlen
einzig der Dezimalpunkt zulässig ist (und im übrigen m.W. auch
Tausendertrennzeichen nicht zulässig sind). SQL ist hier genauso genormt wie
andere Programmiersprachen. Dies kann also generell nicht per Option
verändert werden.

Mit schönem Gruß
Volker

"Dietrich" <Dietrich@ianywhere.sybase.germany> wrote in
news:op.undsnihtoacwen@dlauterxp...
> Hallo,
>
> augenblicklich ist es in der Tat so, dass auf Grund der Sprache, in der
> ISQL angezeigt, auch die formatierung der Zahlen stattfindet.
> Das in einer zukünftigen Version ggf. die Regional-Settings für die
> Ausgabe herangezogen wird, kann ich nicht ausschließen.
>
> Wenn man bei ISQL (SQL Anywhere 11) die Zahlen im deutschen Format
> ausgegeben will, sollte die Sprachumgebung für SQL Anywhere auf Deutsch
> eingestellt sein. Wie die Sprachumgebung eingestellt wird, ist im Handbuch
> unter dem folgenden Kapitel beschrieben.
> SQL Anywhere Server - Datenbankadministration » Konfiguration Ihrer
> Datenbank » Internationale Sprachen und Zeichensätze » Näheres zu
> Sprachumgebungen » Näheres zur Sprache der Sprachumgebung
> bzw.
> SQL Anywhere Server - Database Administration » Configuring Your Database
> » International languages and character sets » Understanding locales »
> Understanding the locale language
>
>
> Gruß,
>
> Dietrich
>
> On Tue, 06 Jan 2009 12:17:28 +0100, Volker Barth
> <No_VBarth@spam_global-finanz.de> wrote:
>
> >
> > <SGollan> wrote in news:496319dd.21a8.1681692777@sybase.com...
> >>> Hallo,
> >>>
> >>> gibt es die Möglichkeit in SQL 11 bei Dezimalzahlen das
> >>> Komma durch einen Punkt zu ersetzen?
> >
> > Meines Wissens nicht. Laut Sybase ist Zahlenformatierung eine
> > Frontend-Angelegenheit.
> >
> > Anbei eine Funktion, die dies vornimmt - inkl. Tausendertrennzeichen:
> >
> > HTH
> > Volker
> >
> >
>
> --------------------------------------------------------------------------
--
> > -
> > -- Funktion zum Formatieren von Zahlen in deutscher Konvention
> > --
> > -- Wandelt Dezimalpunkt in Dezimalkomma um, setzt Tausendseparatoren ein
> > -- und gibt Zahlen mit der angegebenen Anzahl Nachkommastellen aus.
> > --
> > -- Sofern der Eingabewert keine gültige Zahl ist, wird NULL geliefert.
>
> --------------------------------------------------------------------------
--
> > -
> >
> > create function dbo.FKTN_FormatNumber(strValue varchar(100),
> > nCntDecimalPlaces int default 2)
> > returns varchar(200)
> > deterministic
> > begin
> > declare strReturn varchar(200);
> > declare i integer;
> > declare j integer;
> >
> > -- Return NULL for non-numeric values
> > if isnumeric(strValue) = 0 then
> > return null;
> > end if;
> >
> > -- Round/Extend to the given number of decimal places and trim all
> > whitespace
> > if nCntDecimalPlaces < 0 then
> > set nCntDecimalPlaces = 0;
> > end if;
> >
> > set strValue = str(strValue, 100, nCntDecimalPlaces);
> > set strValue = trim(strValue);
> > set i = length(strValue);
> > set j = 0;
> >
> > -- Insert thousand separators
> > while i > 0 loop
> > set strReturn = substr(strValue, i, 1) || strReturn;
> > if (locate(strReturn, '.') > 0) or (locate(strValue, '.') = 0)
then
> > if substr(strValue, i, 1) <> '.' then
> > set j = j + 1;
> > end if;
> > end if;
> > if (j = 3) and (i > 1) then
> > set strReturn = ',' || strReturn;
> > set j = 0;
> > end if;
> > set i = i - 1;
> > end loop;
> >
> > -- Switch point and comma
> > set strReturn = replace(strReturn, '.', '|');
> > set strReturn = replace(strReturn, ',', '.');
> > set strReturn = replace(strReturn, '|', ',');
> >
> > return strReturn;
> > end;
> >
> >
> >
> > -- Testfälle
> > /*
> > select
> > FKTN_FormatNumber(1234.56),
> > FKTN_FormatNumber(1234.00),
> > FKTN_FormatNumber(12345678901234567890.1234567890),
> > FKTN_FormatNumber(0.00),
> > FKTN_FormatNumber(0),
> > FKTN_FormatNumber(-.07),
> > FKTN_FormatNumber(-1234.5678),
> > FKTN_FormatNumber('abcdef'),
> > FKTN_FormatNumber(null);
> >
> > select
> > FKTN_FormatNumber(1234.56789, 2),
> > FKTN_FormatNumber(1234.56789, 5),
> > FKTN_FormatNumber(1234.56789, 0),
> > FKTN_FormatNumber(1234.56789, -1),
> > FKTN_FormatNumber(1234.56789, 1),
> > FKTN_FormatNumber(1234.56789, 3);
> >
> > select
> > FKTN_FormatNumber(1234, 2),
> > FKTN_FormatNumber(1234, 5),
> > FKTN_FormatNumber(1234, 0),
> > FKTN_FormatNumber(1234, -1),
> > FKTN_FormatNumber(1234, 1),
> > FKTN_FormatNumber(1234, 3);
> > */
> >
> >
> >
> >
>