ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
* Database....
@ 2003-07-07 10:13 Willi Egger
  0 siblings, 0 replies; 6+ messages in thread
From: Willi Egger @ 2003-07-07 10:13 UTC (permalink / raw)


[-- Attachment #1: Type: text/plain, Size: 289 bytes --]

Hi Contexters

Is there anybody who has experionce with the database options as
described in core-dat?

I tried to setup an address-database. But I am unable to get it working.
I get an error message saying "missing \endcsname"

Please have a look at the enclosed testfiles.

Cheers Willi

[-- Attachment #2: database.tex --]
[-- Type: text/x-tex, Size: 1336 bytes --]

% Sample record

\def\DoWithRecord#1%
   {\startpacked
    \let\\=\quad
    name:  \getrecordentry{name}~\getrecordentry{family name}\par
    address: \getrecordentry{postal address}\par
    \stoppacked}

\definerecord[address][command=\DoWithRecord]
\setuprecord[address][command=\DoWithRecord]


\definerecordentry[address][Name]
\definerecordentry[address][Surname]
\definerecordentry[address][Foreletters]
\definerecordentry[address][Street]
\definerecordentry[address][StreetNumber]
\definerecordentry[address][Place]
\definerecordentry[address][PostalCode]
\definerecordentry[address][FunctionNL]
\definerecordentry[address][Function]
\definerecordentry[address][Phone]
\definerecordentry[address][Fax]
\definerecordentry[address][Email]


\startrecord{Hans}
\memberofgroup                  {board}
\setrecordentry{Name}           {Hans}
\setrecordentry{Surname}        {Hagen}
\setrecordentry{Foreletters}    {H.}
\setrecordentry{Street}         {Ridderstraat}
\setrecordentry{StreetNumber}   {27}
\setrecordentry{Place}          {Hasselt}
\setrecordentry{PostalCode}     {8061 GH}
\setrecordentry{FunctionNL}     {Voorzitter NTG}
\setrecordentry{Function}       {President NTG}
\setrecordentry{Phone}          {38-4775369}
\setrecordentry{Fax}            {38-4775374}
\setrecordentry{Email}          {pragma@wxs.nl}
\stoprecord

[-- Attachment #3: test.tex --]
[-- Type: text/x-tex, Size: 1460 bytes --]

% Footertexts
% Database
% W. Egger
% 3.07.2003

\setupoutput[pdftex]

%\input NTG-board-members

\processrecords[database.tex][Hans]

\def\FootItemHeaderI{Telefoon}
\def\FootItemHeaderII{Webstek}
\def\FootItemHeaderIII{}
\def\FootItemHeaderIV{e-mail}
\def\FootItemI{0485 573896}
\def\FootItemII{www.boede.nl}
\def\FootItemIII{}
\def\FootItemIV{w.egger@boede.nl}


\startbuffer[SetUpFooterText]
       \hbox to \textwidth{%
         \vbox{% Hans Hagen: needed either \hbox or \vbox; 04-05-2003\setupfootertexts[{\getbuffer[SetUpFooterText]}][]
             \starttabulate[|*{4}{lw(.25\textwidth)|}]
                \NC {\tfx \FootItemHeaderI}
                \NC {\tfx \FootItemHeaderII}
                \NC {\tfx \FootItemHeaderIII}
                \NC {\tfx \FootItemHeaderIV} \NC\NR
                \NC \switchtobodyfont[rm] \FootItemI
                \NC \switchtobodyfont[rm] \FootItemII
                \NC \switchtobodyfont[rm] \FootItemIII
                \NC \switchtobodyfont[rm] \FootItemIV \NC\NR
             \stoptabulate%
          }%
       }%
\stopbuffer

\setupfootertexts[{\getbuffer[SetUpFooterText]}]

\starttext

Some text

\startlines
\getrecordentry{Name}
\getrecordentry{Surame}
\getrecordentry{Foreletters}
\getrecordentry{Street}
\getrecordentry{StreetNumber}
\getrecordentry{Place}
\getrecordentry{PostalCode}
\getrecordentry{FunctionNL}
\getrecordentry{Function}
\getrecordentry{Phone}
\getrecordentry{Email}
\stoplines

\stoptext

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: database
  2007-01-23  8:45 database Wolfgang Werners-Lucchini
@ 2007-01-24  2:44 ` Mojca Miklavec
  0 siblings, 0 replies; 6+ messages in thread
From: Mojca Miklavec @ 2007-01-24  2:44 UTC (permalink / raw)
  To: mailing list for ConTeXt users

On 1/23/07, Wolfgang Werners-Lucchini wrote:
> Hallo!
>
> I tried some examples with m-database and Mojca's 'My Way' and had
> some problems
>
> ==========Example-1===============================================
> \defineseparatedlist[NaturalTable][separator=comma,%quotechar={"},
>                                                   before=\bTABLE,
>                                                   after=\eTABLE,
>                                                   first=\bTR,
>                                                   last=\eTR,
>                                                   left=\bTD,
>                                                   right=\eTD]
>
> \startseparatedlist[NaturalTable]
> Of,course
>     ,it is!
> \stopseparatedlist
> ==================================================================
> This example does only work as expected if one explicitly gives
> quotechar. So what is the default quotechar? Can anybody explain the
> above behaviour?

If you activate "quotechar", you're using completely other macros to
process the data (CSV-like), \TeX-commands won't work.

I first wanted to write that the example above without quotechar is a
documented bug. But then I remembered that it was already fixed. I
looked at the csv.tex again and tried to process it when I figured out
that it doesn't even compile any more.

Hmmm ... I don't have time to play until friday. It might be that I
have some weird local version of m-database which is causing me
problems or vice versa. I'll take a look at the end of the week (but I
don't know how to fix serious bugs, so it will still be Hans's turn to
fix what I find).

With quotechar it probably works because Taco's code (with quotechar)
was less buggy than Hans's ;)

A bit of history: when I asked for that "module", I got two responses
- one from Hans and one from Taco. Each one of them has "invented" his
own way of dealing with such input, but Taco's way works like
\type{\TeX will be ignored}, while Hans's way obeys \TeX commands, so
you can use \bf and such ...
Since they were both useful, Taco has merged the two. But the
difference is probably not documented well enough.

==========Example-2===============================================
> \def\Whatever#1#2#3{[#1][#2][#3]\endgraf}
>
> \defineseparatedlist[CSVX][command=\Whatever,
>    separator={,},
> %   quotechar={"},
>    first=\bTR,last=\eTR,
>    left=\bTD,right=\eTD,
>    before=\bTABLE,after=\eTABLE]
>
> \startCSVX
> eins,"und, zwei",drei
> one,two,three
> \stopCSVX
> ==================================================================
> If I give an command (\Whatever) then the options 'first', 'last',
> 'left', 'right', 'before' and 'after' are ignored. That's ok, I
> think!

I guess that I asked Hans for that behaviour, although it could be
either way. I don't know if that's sensible or not, but you can place
"first" and "last" inside the definition of \Whatever; "left" and
"right" might need slightly more typing (if you decide that you need
to do something repetitive on all the nine cells, so perhaps that's
not so useless), but when I think a bit more about it ... "before" and
"after" don't have their counterpart.

It's a bad practice to define both command and left/right/first/last
anyway ... so perhaps at least before and after (maybe left/right)
should be enabled again?

(I always have problems because I never know which one does what - I
always mix up left/before/first ...)

> But if I uncomment the quotechar option, then the options 'left' and
> 'right' are no longer ignored. Commenting them out or settings like
> 'left=' etc. are not working. What I am doing wrong here?

Taco's mode works differently. It's probably because I never tested
that and/or reported problems. Thing should better be unified in this
respect. (I have to test a bit - end of week.)

==========Example-3===============================================
> \processquotedlist(){,}{"}\command(a=>b=>c=>d)
> ==================================================================
> Does not work for me. Can anybody give an example?

The thing right to \command is purely symbolic I guess (but don't aks
me how "Taco's ugliest macro" works ;).

But: it's low-level command I guess. It's not "documented" in MyWay either.

> '\processseplist' does not work too. There has to be an '%' in front
> of 'raw'!

You're probably right about that '%'.
But \processseplist should be an internal command unless I'm missing something.

(LaTeX uses lots of '@' for internals and has so unreadable code ...
ConTeXt has better readability, but I sometimes feel that some
commands should be better hidden from the outside world - most
low-level commands are "visible" to the user, which shouldn't be the
case).

Mojca

^ permalink raw reply	[flat|nested] 6+ messages in thread

* database
@ 2007-01-23  8:45 Wolfgang Werners-Lucchini
  2007-01-24  2:44 ` database Mojca Miklavec
  0 siblings, 1 reply; 6+ messages in thread
From: Wolfgang Werners-Lucchini @ 2007-01-23  8:45 UTC (permalink / raw)


Hallo!

I tried some examples with m-database and Mojca's 'My Way' and had 
some problems

==========Example-1===============================================
\defineseparatedlist[NaturalTable][separator=comma,%quotechar={"},
                                                  before=\bTABLE,
                                                  after=\eTABLE,
                                                  first=\bTR,
                                                  last=\eTR,
                                                  left=\bTD,
                                                  right=\eTD]

\startseparatedlist[NaturalTable]
Of,course
    ,it is!
\stopseparatedlist
==================================================================
This example does only work as expected if one explicitly gives 
quotechar. So what is the default quotechar? Can anybody explain the 
above behaviour?



==========Example-2===============================================
\def\Whatever#1#2#3{[#1][#2][#3]\endgraf}

\defineseparatedlist[CSVX][command=\Whatever,
   separator={,},
%   quotechar={"},
   first=\bTR,last=\eTR,
   left=\bTD,right=\eTD,
   before=\bTABLE,after=\eTABLE]

\startCSVX
eins,"und, zwei",drei
one,two,three
\stopCSVX
==================================================================
If I give an command (\Whatever) then the options 'first', 'last', 
'left', 'right', 'before' and 'after' are ignored. That's ok, I 
think!

But if I uncomment the quotechar option, then the options 'left' and 
'right' are no longer ignored. Commenting them out or settings like 
'left=' etc. are not working. What I am doing wrong here?


==========Example-3===============================================
\processquotedlist(){,}{"}\command(a=>b=>c=>d)
==================================================================
Does not work for me. Can anybody give an example?

'\processseplist' does not work too. There has to be an '%' in front 
of 'raw'!

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: database
  2003-04-25 10:23 ` database Taco Hoekwater
@ 2003-04-25 11:21   ` Hans Hagen
  0 siblings, 0 replies; 6+ messages in thread
From: Hans Hagen @ 2003-04-25 11:21 UTC (permalink / raw)


[-- Attachment #1: Type: text/plain, Size: 1813 bytes --]

In addition to taco's stuff i attached what i could locate on my machine 
(last year i played a bit with mysql and storing xml and so)

Hans

>What you are asking for (MySQL I/O) cannot be done. The context
>command you refer to intended solely for syntax highlighting of
>SQL statements.
>
>However, you got me thinking. :)
>
>See attached context module and test file. It's extremely crude
>and more of a proof of concept than a full module, but it seems
>to work OK on the simple tests I threw at it. All of the commands
>and macros it provides are in the demonstration file.
>
>Stuff to keep in mind:
>
>- \write18 had better be enabled
>
>- the statement is fed to a 'mysql' in batchmode during \MySQLexecute
>
>- The result is saved to a file named \jobname-[Queryname]-result.dat
>
>- You always have to re-execute before you attempt to process the
>   the results
>
>- The 'Countexecutable' is supposed to return a single line that starts with
>   the number of lines of the \jobname-[Queryname]-result.dat file.
>
>- No error checking whatsoever is done. Spefically, nothing is done
>   about MySQL's output format, so you can expect problems with
>   embedded newlines and other specials characters
>
>The module is a joke, ok? But a fun one :-)
>
>Greetings, Taco
>
>
>On Wed, 23 Apr 2003 20:55:16 +0200, LEGUEDOIS, wrote:
>
> > but I don't know how to use this (how to use the result of the query, where
> > I write database connection's parameters...). Do you know where can I 
> find a
> > manual or any help?
>
>
>--
>groeten,
>
>Taco
>
>================================================================
>Deze e-mail is door E-mail VirusScanner van Planet Internet gecontroleerd 
>op virussen.
>Op http://www.planet.nl/evs staat een verwijzing naar de actuele lijst 
>waar op wordt gecontroleerd.
>

[-- Attachment #2: xmlvvsql.tex --]
[-- Type: text/plain, Size: 1139 bytes --]

% interface=en output=pdftex

\unprotect 

\def\??sq{@@sq}

\def\startSQLquery#1#2\stopSQLquery
  {\setvalue{\??sq:#1}{#2}}

\def\applySQLquery#1% last line is quit without ; 
  {\bgroup
\def\\{\rawcharacter{`\\}}%
   \long\def\next##1;##2%
     {\ifx##2\empty
        \immediate\write\scratchwrite{##1}%
        \@EA\gobbleuntil\@EA\relax
      \else
        \immediate\write\scratchwrite{##1;}%
        \@EA\next
      \fi##2}%
   \immediate\openout\scratchwrite=\bufferprefix\jobname-sql.sql
   \@EAEAEA\next\csname\??sq:#1\endcsname\empty\empty;\empty\relax
   \immediate\closeout\scratchwrite
   \executeSQLcommand
     {\bufferprefix\jobname-sql.sql}%
     {\bufferprefix\jobname-sql.log}%
   \egroup}

\def\executeSQLcommand#1#2%
%  {\executesystemcommand{c:/mysql/bin/mysql.exe < #1 > #2}}
  {\executesystemcommand{c:/mysql/bin/mysqldump.exe  -r #2 <
#1}}

\protect 

\starttext 

\startSQLquery{test}
  connect cod ;
%  select leerling into outfile "e:/tmp/test.tmp" from ws_p ;
%select data into outfile "e:/tmp/test.tmp" 
select data from ws_p ;
  quit
\stopSQLquery

\applySQLquery{test}

\typefile{e:/tmp/test.tmp}

\stoptext

[-- Attachment #3: Type: text/plain, Size: 597 bytes --]

-------------------------------------------------------------------------
                                   Hans Hagen | PRAGMA ADE | pragma@wxs.nl
                       Ridderstraat 27 | 8061 GH Hasselt | The Netherlands
  tel: +31 (0)38 477 53 69 | fax: +31 (0)38 477 53 74 | www.pragma-ade.com
-------------------------------------------------------------------------
                        information: http://www.pragma-ade.com/roadmap.pdf
                     documentation: http://www.pragma-ade.com/showcase.pdf
-------------------------------------------------------------------------

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: database
  2003-04-23 18:55 database LEGUEDOIS, Frederic
@ 2003-04-25 10:23 ` Taco Hoekwater
  2003-04-25 11:21   ` database Hans Hagen
  0 siblings, 1 reply; 6+ messages in thread
From: Taco Hoekwater @ 2003-04-25 10:23 UTC (permalink / raw)
  Cc: F.LEGUEDOIS

[-- Attachment #1: Type: text/plain, Size: 1362 bytes --]



Hi,

What you are asking for (MySQL I/O) cannot be done. The context
command you refer to intended solely for syntax highlighting of
SQL statements.

However, you got me thinking. :)

See attached context module and test file. It's extremely crude
and more of a proof of concept than a full module, but it seems
to work OK on the simple tests I threw at it. All of the commands
and macros it provides are in the demonstration file.

Stuff to keep in mind:

- \write18 had better be enabled

- the statement is fed to a 'mysql' in batchmode during \MySQLexecute

- The result is saved to a file named \jobname-[Queryname]-result.dat

- You always have to re-execute before you attempt to process the
  the results

- The 'Countexecutable' is supposed to return a single line that starts with
  the number of lines of the \jobname-[Queryname]-result.dat file.

- No error checking whatsoever is done. Spefically, nothing is done
  about MySQL's output format, so you can expect problems with 
  embedded newlines and other specials characters

The module is a joke, ok? But a fun one :-)

Greetings, Taco


On Wed, 23 Apr 2003 20:55:16 +0200, LEGUEDOIS, wrote:

> but I don't know how to use this (how to use the result of the query, where
> I write database connection's parameters...). Do you know where can I find a
> manual or any help?


-- 
groeten,

Taco

[-- Attachment #2: t-mysql.tex --]
[-- Type: application/octet-stream, Size: 4234 bytes --]

%D \module
%D   [       file=t-mysql,
%D        version=2003.04.25,
%D          title=\CONTEXT\ Contrib macros,
%D       subtitle=MySQL I/O (alfa),
%D         author=Taco Hoekwater,
%D           date=\currentdate,
%D      copyright={Taco Hoekwater}]


\def\setupMySQL#1[#2]{%
  \getparameters[My][Host=,Database=,User=,Password=,Executable=mysql,Countexecutable=wc,#2]%
}

\long\def\startMySQL#1[#2]#3\stopMySQL{\setxvalue{MySQLquery#2}{#3}}

\newread\MySQLread
\newcount\MySQLscratchcounter
\newbox\MySQLscratchbox

\long\def\MySQLgetrows#1\relax{%
  \global\MySQLscratchcounter=0 
  \setbox\MySQLscratchbox\hbox{\global\MySQLscratchcounter#1}%
}

\def\executeMySQL[#1]{%
        \ifx\MyPassword\empty \def\MyPas{ } \else \edef\MyPas{\space-p\MyPassword \space}\fi
        \ifx\MyHost    \empty \def\MyHos{ } \else \edef\MyHos{\space-h\MyHost     \space}\fi
        \ifx\MyUser    \empty \def\MyUse{ } \else \edef\MyUse{\space-u\MyUser     \space}\fi
        \immediate \write18{\MyExecutable\space-e'\getvalue{MySQLquery#1}'
                            \MyHos\MyUse\MyPas\MyDatabase\space > \jobname-#1-result.dat}%
        \immediate \write18{\MyCountexecutable\space
                            \jobname-#1-result.dat > \jobname-#1-result-rows.dat}%
        \immediate\openin\MySQLread= \jobname-#1-result-rows.dat
        \def\mymac{}%
        \read\MySQLread to \mymac
        \expandafter\MySQLgetrows\mymac\relax
        \advance\MySQLscratchcounter - 1 % for column headers
        \setxvalue{MySQLrows#1}{\the\MySQLscratchcounter}%
        \immediate\closein\MySQLread
        \immediate\openin\MySQLread= \jobname-#1-result.dat
        \read\MySQLread to \mymac
        \expandafter\processMySQLfirstline\mymac\relax
	\setxvalue{MySQLcols#1}{\the\MySQLscratchcounter}%        
	\setxvalue{MySQLcurrent}{#1}%
}

\gdef\processMySQLfirstline#1\relax{%
\MySQLscratchcounter=0
\doprocessMySQLfirstline#1^^I%note the trailing \t
\advance\MySQLscratchcounter-1
}

\long\gdef\doprocessMySQLfirstline#1^^I{%
 \advance\MySQLscratchcounter 1
 \xdef\whatever{#1}%
 \ifx\whatever\empty
    \let\next\relax
 \else
    \setxvalue{MySQLcolumnname\the\MySQLscratchcounter}{#1}%
    \let\next\doprocessMySQLfirstline
 \fi 
 \next
}

{\catcode`\^^I=12
\gdef\processMySQLline#1\relax{%
 \MySQLscratchcounter=0
 \def\currentMySQLlist{}%
 \catcode`\^^I=12
 \doprocessMySQLline#1^^I%note the trailing \t
 %
}

\long\gdef\doprocessMySQLline#1^^I{%
 \advance\MySQLscratchcounter 1
 \xdef\whatever{#1}%
 \ifnum\MySQLscratchcounter=\MySQLcolcount
    \let\next\relax
 \else
   \let\next\doprocessMySQLline
 \fi  
 \ifx\currentMySQLlist\empty
   \edef\currentMySQLlist{\getvalue{MySQLcolumnname\the\MySQLscratchcounter}={#1}}%
 \else
   \edef\currentMySQLlist{\currentMySQLlist,\getvalue{MySQLcolumnname\the\MySQLscratchcounter}={#1}}%
 \fi
 \next
}

\gdef\processMySQLlinesimple#1\relax{%
 \MySQLscratchcounter=0
 \def\currentMySQLlist{}%
 \catcode`\^^I=12
 \doprocessMySQLlinesimple#1^^I%note the trailing \t
 %
}

\long\gdef\doprocessMySQLlinesimple#1^^I{%
 \advance\MySQLscratchcounter 1
 \xdef\whatever{#1}%
 \ifnum\MySQLscratchcounter=\MySQLcolcount
    \let\next\relax
 \else
   \let\next\doprocessMySQLlinesimple
 \fi  
 \ifx\currentMySQLlist\empty
   \edef\currentMySQLlist{{#1}}%
 \else
   \edef\currentMySQLlist{\currentMySQLlist,{#1}}%
 \fi
 \next
}

%\gdef\fetchMySQLarray#1[#2]#3{%
%\catcode`\^^I=12
%\edef\MySQLcolcount{\getvalue{MySQLcols#2}}%
%\read\MySQLread to \mymac
%\expandafter\processMySQLlinesimple\mymac\relax
%\let#3\currentMySQLlist
%\catcode`\^^I=10 }
\gdef\fetchMySQLarray#1{%
\catcode`\^^I=12
\edef\MySQLcolcount{\getvalue{MySQLcols\MySQLcurrent}}%
\bgroup \endlinechar = -1\def\t{ }\def\n{ }\global\read\MySQLread to \mymac
\expandafter\processMySQLlinesimple\mymac\relax
\global\let#1\currentMySQLlist \egroup
\catcode`\^^I=10 }

\gdef\fetchMySQLhash#1{%
\catcode`\^^I=12
\edef\MySQLcolcount{\getvalue{MySQLcols\MySQLcurrent}}%
\bgroup \endlinechar = -1\def\t{ }\def\n{ }\global\read\MySQLread to \mymac
\expandafter\processMySQLline\mymac\relax\relax
\global\let#1\currentMySQLlist \egroup
\catcode`\^^I=10 }
}

\def\MySQLrows{\getvalue{MySQLrows\MySQLcurrent}}

\def\MySQLcolumns{\getvalue{MySQLcols\MySQLcurrent}}


[-- Attachment #3: sqltest.tex --]
[-- Type: application/octet-stream, Size: 597 bytes --]


\usemodule[mysql]

\setupMySQL[Host=tullamore,
	    User=taco,
	    Password=,
	    Database=test,
            %Executable=mysql,
            %Countexecutable=wc -l,
 ]

\def\printlist#1{\message{#1}}

\startMySQL[Users]
SELECT * from tst;
\stopMySQL

\starttext
	
\executeMySQL[Users]

\dorecurse{\MySQLcolumns}{
	\message{\getvalue{MySQLcolumnname\recurselevel}}
}

\dorecurse{\MySQLrows}{
  \fetchMySQLhash\userlist
  \processcommacommand[\userlist]\printlist
}

\executeMySQL[Users]

\dorecurse{\MySQLrows}{
  \fetchMySQLarray\userlist
  \processcommacommand[\userlist]\printlist
}

\stoptext

^ permalink raw reply	[flat|nested] 6+ messages in thread

* database
@ 2003-04-23 18:55 LEGUEDOIS, Frederic
  2003-04-25 10:23 ` database Taco Hoekwater
  0 siblings, 1 reply; 6+ messages in thread
From: LEGUEDOIS, Frederic @ 2003-04-23 18:55 UTC (permalink / raw)


Hello,

I'm new user of ConTeXt (for one week) and I would like to connect ConTeXt
with a database(Oracle, PostegreSQL, MySQL...). Is it possible or must I
write a PERL script to export datas in XML files ? I found this in mail
archive :

\startSQL

my_query

\stopSQL

but I don't know how to use this (how to use the result of the query, where
I write database connection's parameters...). Do you know where can I find a
manual or any help?

Thanks in advance,

P.S. : I'm French and my English isn't very good. I'm sorry about this.

Frederic Leguedois

###########################################

This message has been scanned by F-Secure Anti-Virus for Microsoft Exchange.
For more information, connect to http://www.F-Secure.com/

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2007-01-24  2:44 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2003-07-07 10:13 Database Willi Egger
  -- strict thread matches above, loose matches on Subject: below --
2007-01-23  8:45 database Wolfgang Werners-Lucchini
2007-01-24  2:44 ` database Mojca Miklavec
2003-04-23 18:55 database LEGUEDOIS, Frederic
2003-04-25 10:23 ` database Taco Hoekwater
2003-04-25 11:21   ` database Hans Hagen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).