Gambas Documentation
Application Repository
Code Snippets
Compilation & Installation
Components
gb
gb.args
gb.cairo
gb.chart
gb.clipper
gb.complex
gb.compress
gb.crypt
gb.data
gb.db
.Connection.Databases
.Connection.Tables
.Connection.Users
.Result.Fields
.SubCollection
.Table.Fields
.Table.Indexes
_Connection
Blob
Connection
Connections
Database
DatabaseUser
DB
Field
Index
Result
ResultField
SQLRequest
Table
gb.db.form
gb.db.mysql
gb.db.odbc
gb.db.postgresql
gb.db.sqlite2
gb.db.sqlite3
gb.dbus
gb.dbus.trayicon
gb.debug
gb.desktop
gb.desktop.gnome.keyring
gb.desktop.x11
gb.eval
gb.eval.highlight
gb.form
gb.form.dialog
gb.form.editor
gb.form.htmlview
gb.form.mdi
gb.form.print
gb.form.stock
gb.form.terminal
gb.gmp
gb.gsl
gb.gtk
gb.gtk.opengl
gb.gtk3
gb.gtk3.opengl
gb.gtk3.webview
gb.gui
gb.gui.opengl
gb.gui.qt
gb.gui.qt.ext
gb.gui.qt.opengl
gb.gui.qt.webkit
gb.gui.trayicon
gb.gui.webview
gb.hash
gb.highlight
gb.image
gb.image.effect
gb.image.imlib
gb.image.io
gb.inotify
gb.jit
gb.libxml
gb.logging
gb.map
gb.markdown
gb.media
gb.media.form
gb.memcached
gb.mime
gb.mysql
gb.ncurses
gb.net
gb.net.curl
gb.net.pop3
gb.net.smtp
gb.openal
gb.opengl
gb.opengl.glsl
gb.opengl.glu
gb.opengl.sge
gb.openssl
gb.option
gb.pcre
gb.pdf
gb.poppler
gb.qt4
gb.qt4.ext
gb.qt4.opengl
gb.qt4.webkit
gb.qt4.webview
gb.qt5
gb.qt5.ext
gb.qt5.opengl
gb.qt5.webkit
gb.qt5.webview
gb.qt6
gb.qt6.ext
gb.qt6.opengl
gb.qt6.webview
gb.report
gb.report2
gb.scanner
gb.sdl
gb.sdl.sound
gb.sdl2
gb.sdl2.audio
gb.settings
gb.signal
gb.term
gb.test
gb.util
gb.util.web
gb.v4l
gb.vb
gb.web
gb.web.feed
gb.web.form
gb.web.gui
gb.xml
gb.xml.html
gb.xml.rpc
gb.xml.xslt
Controls pictures
Deprecated components
Developer Documentation
Development Environment Documentation
Documents
Error Messages
Gambas Playground
How To's
Language Index
Language Overviews
Last Changes
Lexicon
README
Search the wiki
To Do
Topics
Tutorials
Wiki License
Wiki Manual

gb.db

This component allows you to access several database management systems. This component creates an intermediate layer between the specific server and your program, so that you can use exactly the same code whatever database backend you decide to use.

Authors BenoƮt Minisini, Nigel Gerrard, Andrea Bortolan, Daniel Vostanikian.

Class Description
Blob This object is returned by a Blob field, and is used for reading or writing its contents.
Connection This class represents a connection to a database.
Connections This class enumerates all connection that are defined in the IDE under the "Connections" project folder.
Database This class represents a database.
DatabaseUser This class represents a user of a database.
DB This class represents the current connection.
Field This class represents a table field.
Index This class represents a table index.
Result This class represents the result of a SQL request.
ResultField This class represents one of the fields of a Result object.
SQLRequest This class provides a facility to generate a basic SQL request on a single table.
Table This class represents the definition of a database table.

This component can access the following database management systems:
  • PostgreSQL

  • MySQL

  • SQLite2

  • SQLite3

  • ODBC

PostgreSQL and MySQL are client/server databases, which means that the connection is made to a server process.

On the other hand, SQLite is a file or memory based database, so there is no server process to connect to. This means that the user may need to include a fully qualified path to the database file if the default is not satisfactory. See the Connection class for more information. The SQLite driver supports the version 3 of SQLite, and falls back to the version 2 driver if needed. See www.sqlite.org for more information.

This component creates an intermediate layer between the specific server and your program, so that you can use exactly the same code whatever database backend you decide to use.

This goal is reached only if:
  • You create your database by using the database manager or by using this component.

  • You use the Find, Create and Edit methods.

  • You don't put SQL values directly in the request, but use the substitution feature of the previous methods.

  • You don't use the Exec method, that lets you send SQL request directly to the backend, so that you can access its specific features.

If you don't need database independence, do as you like! :-)

See also