Microsoft Dynamics NAV--->SELECT<--SQL

deathhour

Commander
Registriert
Juni 2007
Beiträge
2.571
Hallo

ich habe ein kleines Problem in meinem Unternehmen.
Ich habe es geschaft mittels ADO.NET einfache SQLbefehle wie Insert,UPDATE,DELETE von Navsion 4.0 zum SQLServer zuschicken! Eines funktioniert jedoch nicht das wäre der DATASET oder auch in Navision RECORDSET genannt. Hat jemand sowas schoneinmal durchgeführt??

Ich will ein SELECT Befehl an SQL, von Navision aus, senden! Ich würde mich über ein Feedback sehr freuen danke schonmal!



NAVISION_CODE_Stand EXECUTE_SQL(Leider ohne SELECT):


CLEAR(zugang);
CREATE(zugang);
zugang.ConnectionString(´XXXXXXXXXXXXXXXXXXXXX ^^'');
zugang.Open;


ledgerRec.RESET;
ledgerRec.SETCURRENTKEY("Posting Date","Global Dimension 1 Code","Global Dimension 2 Code");
ledgerRec.SETRANGE(ledgerRec."Posting Date", 010107D, 300107D);

//ledgerRec.SETRANGE(ledgerRec."Entry No.", 1400000, 1429999);
ledgerRec.FINDFIRST;
REPEAT


MengeIO:=FORMAT(ledgerRec.IO_Menge,20,1);
MengeNIO:=FORMAT(ledgerRec.NOI_Menge,20,1);


POS:=STRPOS(MengeIO, ',');
IF POS>0 THEN
BEGIN
MengeIO:=CONVERTSTR(MengeIO,',','.');
END;
POS:=STRPOS(MengeNIO, ',');
IF POS>0 THEN
BEGIN
MengeNIO:=CONVERTSTR(MengeNIO,',','.');
END;
zugang.Execute('Insert TUP_Item_Ledger_Entry(LftNr,ArtikelNr,Postenart,Buchung,Lagerortcode,Fehlercode,Person,ChargenNr,'+
'Prodort,Artikel_Art,IO_Menge,NOI_Menge,B_Jahr,B_Jahr_Quart,B_Jahr_Mon,B_Jahr_Woch,B_Tag)'+



'values ('+''''+FORMAT(ledgerRec."Entry No.")+''''+','+
''+''''+ledgerRec."Item No."+''''+','+
''+''''+FORMAT(ledgerRec."Entry Type")+''''+','+
''+''''+FORMAT(ledgerRec."Posting Date")+''''+','+
''+''''+ledgerRec."Location Code"+''''+','+
''+''''+ledgerRec.Fehlercode+''''+','+
''+''''+ledgerRec.Person+''''+','+
''+''''+ledgerRec.ChargenNr+''''+','+
''+''''+ledgerRec.ProdOrt+''''+','+
''+''''+ledgerRec.Artikel_Art+''''+','+
''+''''+MengeIO+''''+','+
''+''''+MengeNIO+''''+','+
''+''''+ledgerRec.B_Jahr+''''+','+
''+''''+ledgerRec.B_Jahr_Quart+''''+','+
''+''''+ledgerRec.B_Jahr_Mon+''''+','+
''+''''+ledgerRec.B_Jahr_Woch+''''+','+
''+''''+ledgerRec.B_Tag+''''+') ');



UNTIL ledgerRec.NEXT = 0;



zugang.Close;




Sobald ich versuche eine Message mit SQL SELECT zu erstellen bekomme ich nur die Meldung: "in USE" zurück!
Ich wollte eben gerne sobald ich 100000 Datensätze in SQL eingefügt habe ein SELECT auf den letzten SQL Satz machen um beim nächsten mal an der Stelle weiter zumachen, sodass nicht nochma alles kopiert wird. Das wäre nicht akzeptabel :) bei 1,5 Mio Datensätzen.


Danke für eure Hilfe P.S. der Code oben funktioniert!!! Ich brauch lediglich eine ergänzung zum SQL SELECT BEFEHL und wie ich auf die DATASETS oder ROWS oder RECORDSETS zugreife!
 
Zurück
Oben