- v5:userguide:learn_dictionary:introduction|Start Of Lesson ^ v5:userguide:learn_dictionary:start_lesson|Start Of Lesson ^ v5:userguide:learn_dictionary:metatypes|MetaTypes ->
~~NOTOC~~
====== Introduction ======
ADOdb provides numerous methods that allow the interrogation of the structure of the database from the database level all the way down to the field object. It does so in a way that offers the following assistance:
* Provides a simple, consistent interface to the information
* Simplifies the procedure of adding,changing and deleting the structure of the database
* Provides cross-database compatibility
* Hides sometimes complex commands that allow access to database schema information.
===== The Meta Functions =====
In ADOdb, methods and objects that hide the complexity of the internals of the database are often referred to as **//Meta Functions//** and **//Meta Objects//**. These methods can be used to access and update the schema in the database.
===== Hiding Complexity =====
In the following example, we want to query the schema of a table in Microsoft SQL server to obtain a list of the columns. Firstly we do it using the native mode syntax for SQL Server:
$SQL = "select c.name,
t.name as type,
c.length,
c.xprec as precision,
c.xscale as scale,
c.isnullable as nullable,
c.cdefault as default_value,
c.xtype,
t.length as type_length,
sc.is_identity
from syscolumns c
join systypes t on t.xusertype=c.xusertype
join sysobjects o on o.id=c.id
join sys.tables st on st.name=o.name
join sys.columns sc on sc.object_id = st.object_id and sc.name=c.name
where o.name='myTable'";
print_r($db->getAll($SQL));
Next we do the same thing using the ADOdb MetaFunction, [[v5:dictionary:metacolumns|metaColumns()]].
$print_r($db->metaColumns('myTable');
The 2 previous examples return the same data, but in the case of ADOdb, the command can be issued against any supported database and the result will be the same