[TCL] probleem met eval

Pagina: 1
Acties:

  • Tweaqer
  • Registratie: November 2002
  • Laatst online: 31-03 08:06
Beste lezer, ik ben momenteel bezig met een eggdrop met wat leuke toeters en bellen. Bijvoorbeeld dat je alle users van een database eruit kan laten gooien op het commando !users. Allemaal heel onnutting en erg leuk enzo, maar ik heb een probleem met het maken van een simpele code om dit te doen. Ik maak gebruik van "fbsql.dll" om te verbinden met de mysql db.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
proc sqlgebruikers {nick uhost hand chan arg} {
 global sqluser sqlpass sqlhost sqldb

 sql connect $sqlhost $sqluser $sqlpass
 sql selectdb $sqldb
 set table "blup"

 set i 0;
 set gebruikers "";

eval {
        incr i;
        set row_x [sql query "select * from blup order by id LIMIT $i,1"]
        set row_y [lindex $row_x 1]
        append gebruikers "$row_y";
    }

 putmsg $chan "\\[\2Gebruikers\2\] ($i): $gebruikers";

 sql disconnect
 return 1

}


Zoals jullie waarschijnlijk wel kunnen zien ben ik geen held in het hele coden :/
Maargoed ik heb wat in elkaar gesleutelt, het werkt alleen nog niet echt O-)
Het is in ieder geval de bedoeling dat hij in het hele eval verhaal telkens $i met 1 verhoogt net zo lang totdat hij alle gebruikers heeft gehad en hij telkens 1 naam toevoegt aan $gebruikers zodat je een lange lijst krijgt. Eventueel zou het ook makkelijk zijn om een limiet op 10 gebruikers te zetten. Ik hoop dat iemand mij kan helpen want http://www.astro.princeto...docs/tcl8.0a1/incr.n.html bied ook niet veel hulp _/-\o_

[ Voor 11% gewijzigd door Tweaqer op 24-09-2005 14:30 ]


  • Radiant
  • Registratie: Juli 2003
  • Niet online

Radiant

Certified MS Bob Administrator

http://www.fastbase.co.nz/fbsql/index.html staat een heel mooi voorbeeldje over hoe je kan queryen en door results lopen, steeds queries doen met een limit is geen goed idee, onnodige workload voor de MySQL server.
Tcl:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# load the fbsql package and connect to a database
load fbsql.dll
sql connect 192.168.3.8 root ""
sql selectdb test

# retrieve a result set as a list of records, each list is a sub-list of all fields
set data [sql "SELECT BRANCH_ID, NAME FROM BRANCH ORDER BY NAME"]

# process a result set, one record at a time - method #1
foreach row [sql "SELECT BRANCH_ID, NAME FROM BRANCH ORDER BY NAME"] {
    set id [lindex $row 0]
    set name [lindex $row 1]
    puts "id = $id, name = $name"
}

# process a result set, one record at a time - method #1
sql startquery "SELECT BRANCH_ID, NAME FROM BRANCH ORDER BY NAME" -array branch
while {[sql fetchrow] != ""} {
    puts "id = $branch(BRANCH_ID), name = $branch(NAME)"
}
sql endquery

[ Voor 6% gewijzigd door Radiant op 24-09-2005 15:38 ]