date_test_02.bmx 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. SuperStrict
  2. Framework Database.PostgreSQL
  3. Import BRL.StandardIO
  4. Local db:TDBConnection = LoadDatabase("POSTGRESQL", "maxtest", "localhost", 0, "user", "pass")
  5. If db.hasError() Then
  6. errorAndClose(db)
  7. End If
  8. Local names:String[][] = [ ..
  9. [ "Alfred", "Aho" ], ..
  10. [ "Brian", "Kernighan" ], ..
  11. [ "Peter", "Weinberger" ] ]
  12. If db.isOpen() Then
  13. db.executeQuery("DROP TABLE person")
  14. db.executeQuery("DROP SEQUENCE person_id")
  15. ' create the auto-incrementing field
  16. db.executeQuery("CREATE SEQUENCE person_id INCREMENT 1 START 1")
  17. ' id field assigned to sequence
  18. Local s:String = "CREATE TABLE person (id integer primary key DEFAULT NEXTVAL('person_id'), " + ..
  19. " forename varchar(30)," + ..
  20. " surname varchar(30), bday date, thetime time, exact timestamp )"
  21. db.executeQuery(s)
  22. If db.hasError() Then
  23. errorAndClose(db)
  24. End If
  25. For Local i:Int = 0 Until names.length
  26. db.executeQuery("INSERT INTO person (forename, surname, bday, thetime, exact) values ('" + names[i][0] + "', '" + ..
  27. names[i][1] + "', '200" + i + "-01-01', '04:01:45', '2007-03-04 13:20:13')")
  28. If db.hasError() Then
  29. errorAndClose(db)
  30. End If
  31. Next
  32. Local query:TDatabaseQuery = TDatabaseQuery.Create(db)
  33. ' prepare select
  34. query.prepare("SELECT * FROM person WHERE bday = $1 And thetime > $2 And exact < $3")
  35. If db.hasError() Then
  36. errorAndClose(db)
  37. End If
  38. query.bindValue(0, TDBDate.Set(2001, 1, 1))
  39. query.bindValue(1, TDBTime.Set(4, 0 ,0))
  40. query.bindValue(2, TDBDateTime.Set(2008, 1, 1, 10, 0, 0))
  41. query.execute()
  42. If db.hasError() Then
  43. errorAndClose(db)
  44. End If
  45. While query.nextRow()
  46. Local record:TQueryRecord = query.rowRecord()
  47. Print("Name = " + record.getString(1) + " " + record.getString(2) + " - " + ..
  48. TDBDate(record.value(3)).getString() + " - " + ..
  49. TDBTime(record.value(4)).getString() + " - " + ..
  50. TDBDateTime(record.value(5)).getString())
  51. Wend
  52. db.close()
  53. End If
  54. Function errorAndClose(db:TDBConnection)
  55. DebugLog(db.error().toString())
  56. db.close()
  57. End
  58. End Function