Re: VMS x86-64 database server

Liste des GroupesRevenir à co vms 
Sujet : Re: VMS x86-64 database server
De : arne (at) *nospam* vajhoej.dk (Arne Vajhøj)
Groupes : comp.os.vms
Date : 10. Jul 2025, 01:25:06
Autres entêtes
Organisation : SunSITE.dk - Supporting Open source
Message-ID : <686f0862$0$686$14726298@news.sunsite.dk>
References : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
User-Agent : Mozilla Thunderbird
On 7/9/2025 8:04 PM, Arne Vajhøj wrote:
I would write your code a little simpler:
 $ type dyn.py
import sqlite3
 def esc(s):
     return "''".join(s.split("'"))
 def q(s):
     return f"'{s}'"
 def dump_range(con, vals):
     jvals = ",".join(q(esc(val)) for val in vals)
     c = con.cursor()
     c.execute(f"SELECT f1,f2 FROM t1 WHERE f2 IN ({jvals})")
     for row in c.fetchall():
         print('%d %s' % (row[0], row[1]))
 with sqlite3.connect('test.db') as con:
     dump_range(con, ['A', 'CCC', 'EEEEE'])
     dump_range(con, ['BB', 'DDDD'])
$ python dyn.py
1 A
3 CCC
5 EEEEE
2 BB
4 DDDD
 But it is both simpler and safer to use dynamic SQL
with just dynamic non-data:
 $ type sta.py
import sqlite3
 def dump_range(con, vals):
     jparm = ",".join('?' for val in vals)
     c = con.cursor()
     c.execute(f"SELECT f1,f2 FROM t1 WHERE f2 IN ({jparm})", vals)
     for row in c.fetchall():
         print('%d %s' % (row[0], row[1]))
 with sqlite3.connect('test.db') as con:
     dump_range(con, ['A', 'CCC', 'EEEEE'])
     dump_range(con, ['BB', 'DDDD'])
$ python sta.py
1 A
3 CCC
5 EEEEE
2 BB
4 DDDD
But this is fun:
$ define/nolog jython_libs "/javalib/zxjdbc.jar:/javalib/h2-2_2_220.jar"
$ type dyn2.py
from com.ziclix.python.sql import zxJDBC
def esc(s):
     return "''".join(s.split("'"))
def q(s):
     return "'" + s + "'"
def dump_range(con, vals):
     jvals = ",".join(q(esc(val)) for val in vals)
     c = con.cursor()
     c.execute("SELECT f1,f2 FROM t1 WHERE f2 IN (" + jvals + ")")
     for row in c.fetchall():
         print('%d %s' % (row[0], row[1]))
with zxJDBC.connect('jdbc:h2:./test;FILE_LOCK=FS;ALLOW_LITERALS=NONE', 'sa', 'hemmeligt', 'org.h2.Driver') as con:
     dump_range(con, ['A', 'CCC', 'EEEEE'])
     dump_range(con, ['BB', 'DDDD'])
$ jython dyn2.py
Traceback (most recent call last):
   File "DYN2.PY", line 17, in <module>
     dump_range(con, ['A', 'CCC', 'EEEEE'])
   File "DYN2.PY", line 12, in dump_range
     c.execute("SELECT f1,f2 FROM t1 WHERE f2 IN (" + jvals + ")")
zxJDBC.Error: Literals of this kind are not allowed; SQL statement:
SELECT f1,f2 FROM t1 WHERE f2 IN ('A','CCC','EEEEE') [90116-220] [SQLCode: 90116], [SQLState: 90116]
$ type sta2.py
from com.ziclix.python.sql import zxJDBC
def dump_range(con, vals):
     jparm = ",".join('?' for val in vals)
     c = con.cursor()
     c.execute("SELECT f1,f2 FROM t1 WHERE f2 IN (" + jparm +")", vals)
     for row in c.fetchall():
         print('%d %s' % (row[0], row[1]))
with zxJDBC.connect('jdbc:h2:./test;FILE_LOCK=FS;ALLOW_LITERALS=NONE', 'sa', 'hemmeligt', 'org.h2.Driver') as con:
     dump_range(con, ['A', 'CCC', 'EEEEE'])
     dump_range(con, ['BB', 'DDDD'])
$ jython sta2.py
1 A
3 CCC
5 EEEEE
2 BB
4 DDDD
:-)
Arne

Date Sujet#  Auteur
6 Jul20:45 * VMS x86-64 database server60Arne Vajhøj
6 Jul22:39 +- Re: VMS x86-64 database server1Lawrence D'Oliveiro
6 Jul23:07 +* Re: VMS x86-64 database server34Arne Vajhøj
7 Jul00:19 i`* Re: VMS x86-64 database server33Lawrence D'Oliveiro
7 Jul00:58 i `* Re: VMS x86-64 database server32Arne Vajhøj
7 Jul03:42 i  `* Re: VMS x86-64 database server31Lawrence D'Oliveiro
7 Jul19:07 i   `* Re: VMS x86-64 database server30Arne Vajhøj
7 Jul19:16 i    +* Re: VMS x86-64 database server2Arne Vajhøj
7 Jul19:21 i    i`- Re: VMS x86-64 database server1Arne Vajhøj
7 Jul23:07 i    `* Re: VMS x86-64 database server27Lawrence D'Oliveiro
8 Jul00:28 i     +* Re: VMS x86-64 database server14Arne Vajhøj
8 Jul01:26 i     i`* Re: VMS x86-64 database server13Lawrence D'Oliveiro
8 Jul13:45 i     i `* Re: VMS x86-64 database server12Arne Vajhøj
8 Jul22:57 i     i  `* Re: VMS x86-64 database server11Lawrence D'Oliveiro
8 Jul23:40 i     i   `* Re: VMS x86-64 database server10Arne Vajhøj
9 Jul00:38 i     i    `* Re: VMS x86-64 database server9Lawrence D'Oliveiro
9 Jul02:54 i     i     `* Re: VMS x86-64 database server8Arne Vajhøj
9 Jul08:25 i     i      `* Re: VMS x86-64 database server7Lawrence D'Oliveiro
9 Jul20:33 i     i       `* Re: VMS x86-64 database server6Arne Vajhøj
10 Jul00:07 i     i        `* Re: VMS x86-64 database server5Lawrence D'Oliveiro
10 Jul00:51 i     i         `* Re: VMS x86-64 database server4Arne Vajhøj
10 Jul02:21 i     i          `* Re: VMS x86-64 database server3Lawrence D'Oliveiro
10 Jul03:24 i     i           `* Re: VMS x86-64 database server2Arne Vajhøj
10 Jul05:28 i     i            `- Re: VMS x86-64 database server1Lawrence D'Oliveiro
8 Jul14:35 i     `* Re: VMS x86-64 database server12Arne Vajhøj
8 Jul22:56 i      `* Re: VMS x86-64 database server11Lawrence D'Oliveiro
8 Jul23:20 i       `* Re: VMS x86-64 database server10Arne Vajhøj
9 Jul00:37 i        `* Re: VMS x86-64 database server9Lawrence D'Oliveiro
9 Jul01:31 i         `* Re: VMS x86-64 database server8Arne Vajhøj
9 Jul08:22 i          `* Re: VMS x86-64 database server7Lawrence D'Oliveiro
10 Jul01:04 i           `* Re: VMS x86-64 database server6Arne Vajhøj
10 Jul01:25 i            +* Re: VMS x86-64 database server4Arne Vajhøj
10 Jul02:35 i            i`* Re: VMS x86-64 database server3Lawrence D'Oliveiro
10 Jul03:26 i            i `* Re: VMS x86-64 database server2Arne Vajhøj
10 Jul06:48 i            i  `- Re: VMS x86-64 database server1Lawrence D'Oliveiro
10 Jul02:33 i            `- Re: VMS x86-64 database server1Lawrence D'Oliveiro
6 Jul23:11 +- Re: VMS x86-64 database server1Arne Vajhøj
6 Jul23:39 `* Re: VMS x86-64 database server23Craig A. Berry
7 Jul00:57  `* Re: VMS x86-64 database server22Arne Vajhøj
7 Jul15:50   `* Re: VMS x86-64 database server21Mark Berryman
7 Jul19:01    `* Re: VMS x86-64 database server20Arne Vajhøj
7 Jul22:06     `* Re: VMS x86-64 database server19Mark Berryman
7 Jul22:36      +* Re: VMS x86-64 database server2Arne Vajhøj
7 Jul22:37      i`- Re: VMS x86-64 database server1Arne Vajhøj
7 Jul23:08      `* Re: VMS x86-64 database server16Lawrence D'Oliveiro
8 Jul00:21       `* Re: VMS x86-64 database server15Arne Vajhøj
8 Jul01:27        `* Re: VMS x86-64 database server14Lawrence D'Oliveiro
8 Jul12:14         `* Re: VMS x86-64 database server13Arne Vajhøj
8 Jul22:58          `* Re: VMS x86-64 database server12Lawrence D'Oliveiro
8 Jul23:14           +* Re: VMS x86-64 database server10Arne Vajhøj
9 Jul00:40           i`* Re: VMS x86-64 database server9Lawrence D'Oliveiro
9 Jul03:18           i `* Re: VMS x86-64 database server8Arne Vajhøj
9 Jul08:27           i  +- Re: VMS x86-64 database server1Lawrence D'Oliveiro
9 Jul11:16           i  `* Re: VMS x86-64 database server6hb0815
9 Jul15:13           i   `* Re: VMS x86-64 database server5Arne Vajhøj
9 Jul17:51           i    `* Re: VMS x86-64 database server4hb0815
9 Jul18:39           i     `* Re: VMS x86-64 database server3Arne Vajhøj
9 Jul18:56           i      +- Re: VMS x86-64 database server1Chris Townley
9 Jul20:55           i      `- Re: VMS x86-64 database server1hb0815
10 Jul01:12           `- Re: VMS x86-64 database server1bill

Haut de la page

Les messages affichés proviennent d'usenet.

NewsPortal