AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: За рубежом > DAX auf Deutsch
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 19.09.2007, 03:24   #1  
Blog bot is offline
Blog bot
Участник
 
25,631 / 848 (80) +++++++
Регистрация: 28.10.2006
jinx: ADO Teil 2 - Bef?llen externer Datenquellen
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();
}
}



Es wird keine Haftung oder Gew?hrleistung auf die Richtigkeit der gemachten Angaben gegeben. Die Verwendung erfolgt auf eigene Gefahr. Copyright © Axel K?hn (Aku's AX Blog, http://blog.ak-home.net) and Mathias F??ler (jinx's AX Blog, http://starside.eu)

More...
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Поговорим об ADO Gustav DAX: База знаний и проекты 63 11.05.2016 14:25
C# and AX Development: Using ADO for interfacing AX with an external database Blog bot DAX Blogs 0 05.08.2008 05:18
jinx: Microsoft Dynamics AX API – Teil 3 „Buchen von Auftr?gen“ Blog bot DAX auf Deutsch 0 26.10.2007 03:34
jinx: Microsoft Dynamics AX API – Teil 2 „Erstellen von Bestellungen“ Blog bot DAX auf Deutsch 1 04.09.2007 11:46
jinx: Microsoft Dynamics AX API – Teil 1 „Erstellen von Auftr?gen“ Blog bot DAX auf Deutsch 0 17.08.2007 20:54

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 14:01.