...feel the spirit of Microsoft Dynamics AX RSS 2.0
 Tuesday, September 18, 2007
Im letzten Artikel bin ich nur auf das lesen externer Datenquellen in Microsoft Dynamics AX eingegangen, diesesmal wird anhand eines kleine Beispiels eine externe Datenquelle befüllt.

static void ArtikelinExterneDatenquelleeinfuegen(Args _args)

{
CCADOConnection adoConnection;
CCADOCommand adoCommand;

Inventtable inventtable;
;
adoConnection = new CCADOConnection();
//ODBC-Connection
adoConnection.connectionString(strfmt("Dsn=%1",dsnName));
//Connection öffnen
adoConnection.open();

adoCommand = new CCADOCommand();
adoCommand.activeConnection(adoConnection);
//Alle Datensätze der Artikeltabelle
while select inventtable
{
// Neue Anweisung für das Einfügen des Datensatzes
adoCommand.commandText(strfmt("Insert into ExterneArtikelTabelle (Artikelkennung,Artikelname) values ('%1','%2')", inventtable.ItemId, inventtable.itemName));
// Anweisung ausführen
adoCommand.execute();
}
}

Das Erstellen der Verbindung ist identisch, nur habe ich die Klasse CCADOCommand anstelle von CCADORecordSet verwendet. Mit CCADOCommand können Manipulationen, wie das Einfügen oder das Löschen von Datensätzen, an externe Datenquellen vorgenommen werden.

Wenn man noch einen Schritt weiter gehen will kann auch die Tabelle vorher neu erstellt werden um diese dann nutzen zu können. Dies geschieht auch über SQL Befehle.

Hier nochmal ein Beispiel für das anlegen und befüllen einer Tabelle (Artikeltabelle mit den Feldern Artikelnummer und Artikelname).

static void ArtikelinExterneDatenquelleeinfuegen(Args _args)
{
CCADOConnection adoConnection;
CCADORecordSet adoRecordSet;
CCADOCommand adoCommand;
str sql;
Inventtable inventtable;
SysDictTable dictTable = new SysDicttable(inventTable.TableId);
SysDictField dictFieldID = new SysDictField(dicttable.id(), fieldnum(InventTable, ItemID));
SysDictField dictFieldName = new SysDictField(dicttable.id(), fieldnum(InventTable, ItemName));
;
//Neu Verbindung
adoConnection = new CCADOConnection();
adoConnection.connectionString(strfmt("Dsn=%1",dsnName));
adoConnection.open();

//Neu Command
adoCommand = new CCADOCommand();
adoCommand.activeConnection(adoConnection);

//Tabelle löschen wenn sie existiert
/*
sql = strfmt("DROP Table
IF EXISTS %1", dictTable.label());

adoCommand.commandText(sql);
adoCommand.execute();
*/

//Tabelle erzeugen
sql = strfmt("Create Table %1 (%2 %3(%4), %5 %6(%7))",
strrem(dictTable.label(), " "),
//Leerzeichen löschen
strrem(dictFieldID.label(), " "),
dictFieldID.baseType(),
//Datentyp festlegen
dictFieldID.stringLen(),//Größe festlegen
strrem(dictFieldName.label(), " "),
dictFieldName.baseType(),
dictFieldName.stringLen());

adoCommand.commandText(sql);
adoCommand.execute();

//Datensätze in die neue Tabelle schreiben
while select inventtable
{
sql = strfmt("Insert into %1 (%2,%3) values ('%4','%5')",
strrem(dictTable.label(), " "),
strrem(dictFieldID.label(), " "),
strrem(dictFieldName.label(), " "),
inventtable.ItemId,
inventtable.itemName);

adoCommand.commandText(sql);
adoCommand.execute();
}
}


Tuesday, September 18, 2007 9:39:45 PM (Mitteleuropäische Zeit, UTC+01:00)  Mathias Füßler  #    Comments [0] - Trackback


Comments are closed.


Translate
Über/Kontakt

     







© Copyright 2012 Axel Kühn
Sign In
Subscribe this blog
Blogroll
 Arijit Basu
 Axapta Blog
Blog around Microsoft Business Solutions Axapta by Helmut Wimmer
 BlaBlubBlog
Der Blog von Kai Gloth
 Dave Bowles
 Dick Wenning
Ax(apta) start pages
 Fred Shen
 Harish Mohanbabu
 jinx´s AX Blog
Everything about Microsoft Dynamcis AX
 Lars Keller
All about .NET, VSTS, VSTO and more
 Max Belugin
 TaReMoTi Blog
Der Blog von Karsten Döring
Archiv
<February 2012>
SunMonTueWedThuFriSat
2930311234
567891011
12131415161718
19202122232425
26272829123
45678910
Statistik
Gesamte Posts: 137
Dieses Jahr: 0
Dieser Monat: 0
Diese Woche: 0
Kommentare: 49





All Content © 2012, Axel Kühn
DasBlog theme 'Business' created by Christoph De Baene (delarou)