Tcl und Datenbanken

Für eine Vielzahl von Datenbanken existieren Tcl-Schnittstellen. Diese Funktionalität wird entweder durch einen speziellen Tcl-Interpreter (mysqlwish) oder als ladbarer Modul (PostgreSQL, ADABAS-D) bereitgestellt. Leider unterscheiden sich die Befehlssätze gewaltig.

Beispiel mySQL:

  #!/usr/local/bin/mysqltcl
  
  set sql [mysqlconnect localhost]
  mysqluse $sql test login passwd
  mysqlexec $sql "insert into t1 values ('Meyer','Max',1965)"
  mysqlsel $sql "select * from t1"
  mysqlmap $sql {name vorname geboren} {
    puts "$name $vorname $geboren"
  }
  mysqlclose $sql
In der Windows-Welt existiert eine ODBC-Schnittstelle, die den Datenbankzugriff vereinheitlicht:
  load tclodbc.dll
  database db mysql-test poenisch xxx
  db "create table test1 (name char(20), vorname char(20), geboren int)"
  db "insert insert into test1 values ('Meier','Max',1963)"
  db "insert insert into test1 values ('Müller','Maria',1966)"
  set answerlist [db "select * from test1"]
  # ==> {Meier Max 1963} {Müller Maria 1966}
  foreach entry $answerlist {
    puts $entry
  }
  db disconnect