OK, I had a go at an ODBC plugin before and fell flat on my proverbial.
So I'm going to have a go at it again.
I want it to have much the same (but in limited form really compared to the SQLITE plugin - I have far more familiarity with SQLITE) functionality of my SQLITE plugin:-
http://forum.thegamecreators.com/?m=forum_view&t=206418&b=8
If you have the right ODBC drivers (act like a bridge to various formats of database) installed you should be able to access, alter, edit, review, change MS Access databases, MS Excel databases, DBase databases, Firebird databases etc - so long as you have properly installed the ODBC drivers for those particular types of database aleady.
If you have latest versions of MS Access and/or MS Excel those software applications should have also installed bridging ODBC drivers.
Here are some potential links to other ODBC drivers to allow you to play with other types of database (you may need to subscribe to some sites like say MySQL):-
mysql odbc drivers =
https://dev.mysql.com/downloads/connector/odbc/
postgreslq odbc drivers (see bottom of page) =
http://www.postgresql.org/ftp/odbc/versions/msi/
sqlite3 odbc drivers =
http://www.ch-werner.de/sqliteodbc/
sql server odbc drivers =
http://www.microsoft.com/en-us/download/details.aspx?id=36434
firebird odbc drivers =
http://sourceforge.net/projects/firebird/files/firebird-ODBC-driver/2.0.2-Release/Firebird_ODBC_2.0.2.153_Win32.exe/download
I'll include some functions to look at what ODBC drivers you have.
I'll also try and simplify getting in to and out of MS databases and perhaps other database formats, without worrying about servers etc. That's the idea anyway...
[edit]
Versions
Current Version 0.1 (01/04/2014)
Added 19 functions.
Trying to make it easier to establish a connection and connect to a database using a bridging ODBC driver without having to set up that connection separately and manually.
Lots of functions to assist and find out about ODBC drivers too.
Also table count and table name functions.
Totally TOTALLY untested...
Current Version 0.1 (01/04/2014)
Added 19 functions.
Trying to make it easier to establish a connection and connect to a database using a bridging ODBC driver without having to set up that connection separately and manually.
Lots of functions to assist and find out about ODBC drivers too.
Also table count and table name functions.
Totally TOTALLY untested...
version = 0.1 (pre-alpha) (30/3/2014)
OK, so as promised, I've attached the pre-alpha proof of concept plugin.
It already has plenty of commands - but you will either need to know what you're doing with your relevant ODBC drivers and setting up connections, DNS, manually or within the filename element of the function, or you wont at this stage. Can someone who understands these things test it out?
I plan to soon add commands to quickly add a temporary connection and then close it within a fast opening and the closing commands - but not yet implemented...
Command Set
Command Set:-
ODBC AVAILABLE - a function returning an INTEGER value from <*no parameters*>
ODBC DRIVERS COUNT - a function returning an INTEGER value from <*no parameters*>
ODBC GET DRIVER NAME$ - a function returning a STRING value from (DriverNumber INTEGER)
ODBC GET DRIVER DESCRIPTION$ - a function returning a STRING value from (DriverNumber INTEGER)
ODBC MS ACCESS DRIVER EXIST - a function returning an INTEGER value from <*no parameters*>
ODBC MS EXCEL DRIVER EXIST - a function returning an INTEGER value from <*no parameters*>
ODBC MS DBASE DRIVER EXIST - a function returning an INTEGER value from <*no parameters*>
ODBC SQLITE3 DRIVER EXIST - a function returning an INTEGER value from <*no parameters*>
ODBC FIREBIRD DRIVER EXIST - a function returning an INTEGER value from <*no parameters*>
ODBC MYSQL DRIVER EXIST - a function returning an INTEGER value from <*no parameters*>
ODBC SQL SERVER DRIVER EXIST - a function returning an INTEGER value from <*no parameters*>
ODBC GET DSN$ - a function returning a STRING value from (DatabaseID INTEGER)
ODBC OPEN MS ACCESS CONNECTION - a function returning an INTEGER value from (DatabaseID INTEGER, DatabaseFilename STRING, Username STRING, Password STRING)
ODBC OPEN MS DBASE CONNECTION - a function returning an INTEGER value from (DatabaseID INTEGER, DatabaseFilename STRING, Username STRING, Password STRING)
ODBC OPEN MS EXCEL CONNECTION - a function returning an INTEGER value from (DatabaseID INTEGER, DatabaseFilename STRING, Username STRING, Password STRING)
ODBC OPEN FIREBIRD CONNECTION - a function returning an INTEGER value from (DatabaseID INTEGER, DatabaseFilename STRING, Username STRING, Password STRING)
ODBC OPEN MYSQL CONNECTION - a function returning an INTEGER value from (DatabaseID INTEGER, DatabaseFilename STRING, Username STRING, Password STRING)
ODBC OPEN SQLITE3 CONNECTION - a function returning an INTEGER value from (DatabaseID INTEGER, DatabaseFilename STRING, Username STRING, Password STRING)
ODBC OPEN SQL SERVER CONNECTION - a function returning an INTEGER value from (DatabaseID INTEGER, DatabaseFilename STRING, Username STRING, Password STRING)
ODBC OPEN OTHER CONNECTION - a function returning an INTEGER value from (DatabaseID INTEGER, DatabaseFilename STRING, Username STRING, Password STRING, ShorthandOfDriver STRING)
ODBC BASIC OPEN DATABASE - a function returning an INTEGER value from (DatabaseID INTEGER, DatabaseFilename STRING, Username STRING, Password STRING)
ODBC ADVANCED OPEN DATABASE - a function returning an INTEGER value from (DatabaseID INTEGER, DatabaseFilename STRING, Username STRING, Password STRING)
ODBC CLOSE DATABASE - a function returning an INTEGER value from (DatabaseID INTEGER)
ODBC DATABASE EXIST - a function returning an INTEGER value from (DatabaseID INTEGER)
ODBC CURRENT DATABASE - a function returning an INTEGER value from (DatabaseID INTEGER)
ODBC GET LAST ERROR$ - a function returning a STRING value from <*no parameters*>
ODBC TABLE EXIST - a function returning an INTEGER value from (DatabaseID INTEGER, TableName STRING)
ODBC CREATE TABLE - a function returning an INTEGER value from (DatabaseID INTEGER, TableName STRING, ColumnsDefinitionsAndConstraints STRING)
ODBC RENAME TABLE - a function returning an INTEGER value from (DatabaseID INTEGER, OriginalTableName STRING, NewTableName STRING)
ODBC GET TABLE COUNT - a function returning an INTEGER value from (DatabaseID INTEGER)
ODBC GET TABLE NAME$ - a function returning a STRING value from (DatabaseID INTEGER, NumberedTable INTEGER)
ODBC TABLE ROW COUNT - a function returning an INTEGER value from (DatabaseID INTEGER, TableName STRING)
ODBC TABLE NAMED COLUMN EXIST - a function returning an INTEGER value from (DatabaseID INTEGER, TableName STRING, ColumnName STRING)
ODBC ADD COLUMN TO TABLE - a function returning an INTEGER value from (DatabaseID INTEGER, TableName STRING, ColumnDefinitionAndConstraint STRING)
ODBC TABLE COLUMN NAME$ - a function returning a STRING value from (DatabaseID INTEGER, TableName STRING, ColumnNumber INTEGER)
ODBC TABLE COLUMN INDEX - a function returning an INTEGER value from (DatabaseID INTEGER, TableName STRING, ColumnName STRING)
ODBC TABLE COLUMN DEFINITION$ - a function returning a STRING value from (DatabaseID INTEGER, TableName STRING, ColumnNumber INTEGER)
ODBC TABLE COLUMN SIZE - a function returning an INTEGER value from (DatabaseID INTEGER, TableName STRING, ColumnNumber INTEGER)
ODBC TABLE COLUMN COUNT - a function returning an INTEGER value from (DatabaseID INTEGER, TableName STRING)
ODBC TABLE AS PRINTSTRING$ - a function returning a STRING value from (DatabaseID INTEGER, TableName STRING, RightSetColumnLength INTEGER,[ FirstRow INTEGER,[ EndRow INTEGER])
ODBC TABLE CREATE FIELDSTRING OF COLUMNS$ - a function returning a STRING value from (DatabaseID INTEGER, TableName STRING,[ DelimeterForFieldString STRING])
ODBC TABLE CELL STRING$ - a function returning a STRING value from (DatabaseID INTEGER, TableName STRING, ColumnNumber INTEGER, RowNumber INTEGER)
ODBC TABLE CELL INTEGER - a function returning an INTEGER value from (DatabaseID INTEGER, TableName STRING, ColumnNumber INTEGER, RowNumber INTEGER)
ODBC TABLE CELL FLOAT - a function returning a FLOAT value from (DatabaseID INTEGER, TableName STRING, ColumnNumber INTEGER, RowNumber INTEGER)
ODBC CHANGE TABLE CELL STRING - a function returning an INTEGER value from (DatabaseID INTEGER, TableName STRING, ColumnName STRING, OriginalCellString STRING, NewCellString STRING,[ WhereAnotherColumnNamed STRING,[ HasAStringValueOf STRING])
ODBC CHANGE TABLE CELL INTEGER - a function returning an INTEGER value from (DatabaseID INTEGER, TableName STRING, ColumnName STRING, OriginalCellInteger INTEGER, NewCellInteger INTEGER,[ WhereAnotherColumnNamed STRING,[ HasAnIntegerValueOf INTEGER])
ODBC CHANGE TABLE CELL FLOAT - a function returning an INTEGER value from (DatabaseID INTEGER, TableName STRING, ColumnName STRING, OriginalCellFloat FLOAT, NewCellFloat FLOAT,[ WhereAnotherColumnNamed STRING,[ HasAFloatValueOf FLOAT])
ODBC FIND TABLE STRING$ - a function returning a STRING value from (DatabaseID INTEGER, TableName STRING, FindInColumnA STRING, WhereColumnB1 STRING, HasValueB2 STRING,[ AndWhereColumnC1 STRING,[ HasValueC2 STRING])
ODBC FIND TABLE INTEGER - a function returning an INTEGER value from (DatabaseID INTEGER, TableName STRING, FindInColumnA STRING, WhereColumnB1 STRING, HasValueB2 STRING,[ AndWhereColumnC1 STRING,[ HasValueC2 STRING])
ODBC FIND TABLE FLOAT - a function returning a FLOAT value from (OldString INTEGER, DatabaseID INTEGER, TableName STRING, FindInColumnA STRING, WhereColumnB1 STRING,[ HasValueB2 STRING,[ AndWhereColumnC1 STRING,[ HasValueC2 STRING])
ODBC BEGIN SQL QUERY - a function returning an INTEGER value from (DatabaseID INTEGER, SQLQuery STRING)
ODBC BEGIN SQL QUERY SPECIFIC - a function returning an INTEGER value from (DatabaseID INTEGER, TableName STRING, ColumnName1 STRING, ColumnValue1 STRING,[ ColumnName2 STRING,[ ColumnValue2 STRING,[ ColumnName3 STRING,[ ColumnValue3 STRING])
ODBC FURTHER SQL QUERY - a function returning an INTEGER value from (DatabaseID INTEGER, AdditionalSQLQuery STRING)
ODBC MAKE TABLE FROM SQL QUERY RECORDS - a function returning an INTEGER value from (DatabaseID INTEGER, NewTableName STRING)
ODBC QUERY RECORDS COUNT - a function returning an INTEGER value from (DatabaseID INTEGER)
ODBC QUERY COLUMNS COUNT - a function returning an INTEGER value from (DatabaseID INTEGER)
ODBC QUERY COLUMN NAME$ - a function returning a STRING value from (DatabaseID INTEGER, ColumnNumber INTEGER)
ODBC FIRST RECORD ROW - a function returning an INTEGER value from (DatabaseID INTEGER)
ODBC PREVIOUS RECORD ROW - a function returning an INTEGER value from (DatabaseID INTEGER)
ODBC NEXT RECORD ROW - a function returning an INTEGER value from (DatabaseID INTEGER)
ODBC GOTO RECORD ROW - a function returning an INTEGER value from (DatabaseID INTEGER, RowToGoTo INTEGER)
ODBC GOTO RECORD ROW WHERE - a function returning an INTEGER value from (DatabaseID INTEGER, WhereColumnNameA STRING, EqualsValueA STRING)
ODBC LAST RECORD ROW - a function returning an INTEGER value from (DatabaseID INTEGER)
ODBC RECORD COLUMN NAME$ - a function returning a STRING value from (DatabaseID INTEGER, ColumnNumber INTEGER)
ODBC RECORD COLUMN COUNT - a function returning an INTEGER value from (DatabaseID INTEGER)
ODBC RECORD ROW COUNT - a function returning an INTEGER value from (DatabaseID INTEGER)
ODBC RECORD ROW STRING$ - a function returning a STRING value from (DatabaseID INTEGER, ColumnNumber INTEGER)
ODBC RECORDSET AS PRINTSTRING$ - a function returning a STRING value from (DatabaseID INTEGER, RightSetColumnLength INTEGER,[ FirstRow INTEGER,[ EndRow INTEGER])
ODBC RECORD CURRENT ROW FIELDSTRING$ - a function returning a STRING value from (DatabaseID INTEGER,[ DelimeterForFieldString STRING])
ODBC RECORD ROW INTEGER - a function returning an INTEGER value from (DatabaseID INTEGER, ColumnNumber INTEGER)
ODBC RECORD ROW FLOAT - a function returning a FLOAT value from (DatabaseID INTEGER, ColumnNumber INTEGER)
ODBC FINISH SQL QUERY - a function returning an INTEGER value from (DatabaseID INTEGER)
ODBC UPDATING SQL STATEMENT - a function returning an INTEGER value from (DatabaseID INTEGER, UpdatingSQLStatement STRING)
ODBC ROWS AFFECTED BY UPDATE - a function returning an INTEGER value from (DatabaseID INTEGER)
ODBC SET COLUMN VALUE WHERE - a function returning an INTEGER value from (DatabaseID INTEGER, TableName STRING, ColumnToBeEffected STRING, NewValue STRING, WhereColumnA STRING, EqualsValueA STRING,[ AndWhereColumnB STRING,[ EqualsValueB STRING])
ODBC INSERT ROW INTO TABLE - a function returning an INTEGER value from (DatabaseID INTEGER, TableName STRING, SpecifiedNamedColumns STRING, SpecifiedValuesForThoseColumns STRING)
ODBC DELETE ROWS FROM TABLE - a function returning an INTEGER value from (DatabaseID INTEGER, TableName STRING, WhereConditions STRING)
ODBC CREATE INDEX - a function returning an INTEGER value from (DatabaseID INTEGER, IndexName STRING, TableName STRING, ColumnName STRING)
ODBC DROP INDEX - a function returning an INTEGER value from (DatabaseID INTEGER, IndexName STRING)
ODBC DELETE INDEX - a function returning an INTEGER value from (DatabaseID INTEGER, IndexName STRING)
ODBC MAKE ARRAY FROM TABLE - a function returning an INTEGER value from (DatabaseID INTEGER, TableName STRING)
ODBC MAKE ARRAY FROM RECORDSET - a function returning an INTEGER value from (DatabaseID INTEGER)
ODBC ARRAY EXIST - a function returning an INTEGER value from <*no parameters*>
ODBC ARRAY COLUMN COUNT - a function returning an INTEGER value from <*no parameters*>
ODBC ARRAY ROW COUNT - a function returning an INTEGER value from <*no parameters*>
ODBC ARRAY GET COLUMN NAME$ - a function returning a STRING value from (ColumnNumber INTEGER)
ODBC ARRAY GET COLUMN TYPE$ - a function returning a STRING value from (ColumnNumber INTEGER)
ODBC ARRAY GET COLUMN NAME WITH TYPE$ - a function returning a STRING value from (ColumnNumber INTEGER)
ODBC ARRAY COLUMN NAMES FIELDSTRING$ - a function returning a STRING value from <*no parameters*>
ODBC ARRAY COLUMN TYPES FIELDSTRING$ - a function returning a STRING value from <*no parameters*>
ODBC ARRAY COLUMN NAMES AND TYPES FIELDSTRING$ - a function returning a STRING value from <*no parameters*>
ODBC ARRAY STRING$ - a function returning a STRING value from (ColumnNumber INTEGER, RowNumber INTEGER)
ODBC ARRAY INTEGER - a function returning an INTEGER value from (ColumnNumber INTEGER, RowNumber INTEGER)
ODBC ARRAY FLOAT - a function returning a FLOAT value from (ColumnNumber INTEGER, RowNumber INTEGER)
ODBC MAKE TABLE FROM ARRAY - a function returning an INTEGER value from (DatabaseID INTEGER, NewTableName STRING,[ NumberedColumnAsPrimaryKey INTEGER,[ NamesColumnsToBeIndexed STRING])
ODBC EXPORT ODBC ARRAY AS CSV - a function returning an INTEGER value from (CSVFileName STRING)
ODBC CLEAR ODBC ARRAY - a command with <*no parameters*>
ODBC DELETE ODBC ARRAY - a command with <*no parameters*>
Total Number of Commands = 98
Any proper testing and feedback greatfully received...
a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...