Calendar

March 2010
SunMonTueWedThuFriSat
 << < > >>
 123456
78910111213
14151617181920
21222324252627
28293031   

Announce

Who's Online?

Member: 0
Visitor: 1

Using ADO for interfacing AX with an external database
f we need to interface any external database with Dynamics AX, we can achieve this task by using ADO and its AX available classes:CCADOConnection, CCADORecordSet, CCADOFields, CCADOField andCCADOCommand. Here an example:

static void ADOTestJob(Args _args)
{CCADOConnection     ccConnection;
CCADOCommand        ccCommand;
CCADORecordSet      ccRecordset;
CCADOFields         ccFields;
str                 st;
str                 data1;
int                 data2;
;
ccConnection = new CCADOConnection();// Setting the connection string
ccConnection.connectionString(StrFmt('Provider=SQLOLEDB.1;Persist Security Info=False;User ID=%3;Password=%4;Initial Catalog=%2;Data Source=%1'
'servername'  // Server's IP or name,
 'database'    // Database or catalog
'user'        // Username
'pwd'         // Password));// Open the connection
ccConnection.open();// Preparing the query
st = "SELECT * FROM mytable";// Recordset object creation
ccRecordset = new CCADORecordSet();// Executing the querycc
Recordset.open( st, ccConnection );// Reading data
while (!ccRecordset.EOF())
{
ccFields = ccRecordset.fields();// We can access fields either by name or by Index
data1 = ccFields.itemName("FIELD1").value();
data2 = ccFields.itemIdx(1).value();
info(strfmt("Data %1, %2", data1, data2));// Read next record
ccRecordset.moveNext();
}// Closing the connection
ccRecordset.close();
ccConnection.close();}


If we need to execute something (an UPDATEDELETE, etc.), we can use the CCADOCommand:

void ExecuteSQLExt(str sql){// Creating the ADO Command objectccCommand = new CCADOCommand();// Associate it with an existing opened connectionccCommand.activeConnection(ccConnection);// Executing the commandccCommand.commandText(SQL);ccCommand.execute();}


NOTE: For working with ADO constants like cursor types (adOpenForwardOnly, adOpenKeyset, adOpenDynamic, adOpenStatic), we only need to include the macro CCADO (#CCADO) where they are defined.
06:41:53 am . 03 Jan 2009
Admin · 127 views · 1 comment

Permanent link to full entry

http://naresh.sosblog.com/Naresh-b1/Using-ADO-for-interfacing-AX-with-an-external-database-b1-p920.htm

Comments


Leave a comment

New feedback status: Published





Your URL will be displayed.

 
Please enter the code written in the picture.


Comment text

Options
   (Set cookies for name, email and url)