test_02.bmx 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. SuperStrict
  2. Framework Database.PostgreSQL
  3. Import BRL.StandardIO
  4. Local db:TDBConnection = LoadDatabase("POSTGRESQL", "maxtest", "localhost", 0, "user", "pass")
  5. If Not db Then
  6. Print "Didn't work..."
  7. End
  8. End If
  9. If db.hasError() Then
  10. errorAndClose(db)
  11. End If
  12. Local names:String[][] = [ ..
  13. [ "Alfred", "Aho" ], ..
  14. [ "Brian", "Kernighan" ], ..
  15. [ "Peter", "Weinberger" ] ]
  16. If db.isOpen() Then
  17. db.executeQuery("DROP TABLE person")
  18. db.executeQuery("DROP SEQUENCE person_id")
  19. ' create the auto-incrementing field
  20. db.executeQuery("CREATE SEQUENCE person_id INCREMENT 1 START 1")
  21. ' id field assigned to sequence
  22. Local s:String = "CREATE TABLE person (id integer primary key DEFAULT NEXTVAL('person_id'), " + ..
  23. " forename varchar(30)," + ..
  24. " surname varchar(30) )"
  25. db.executeQuery(s)
  26. If db.hasError() Then
  27. errorAndClose(db)
  28. End If
  29. ' get a new query object
  30. Local query:TDatabaseQuery = TDatabaseQuery.Create(db)
  31. ' prepare the insert statement
  32. ' by preparing it once, the database can reuse it on succesive inserts which is more efficient.
  33. query.prepare("INSERT INTO person (forename, surname) values ($1, $2)")
  34. If db.hasError() Then
  35. errorAndClose(db)
  36. End If
  37. ' iterate round the array inserting new entries
  38. For Local i:Int = 0 Until names.length
  39. query.bindValue(0, TDBString.Set(names[i][0]))
  40. query.bindValue(1, TDBString.Set(names[i][1]))
  41. query.execute()
  42. If db.hasError() Then
  43. errorAndClose(db)
  44. End If
  45. Next
  46. ' select
  47. query = db.executeQuery("SELECT * from person")
  48. If db.hasError() Then
  49. errorAndClose(db)
  50. End If
  51. While query.nextRow()
  52. Local record:TQueryRecord = query.rowRecord()
  53. Print "Name = " + record.getString(1) + " " + record.getString(2)
  54. Wend
  55. db.close()
  56. End If
  57. Function errorAndClose(db:TDBConnection)
  58. Print db.error().toString()
  59. db.close()
  60. End
  61. End Function