![]() |
Datenbank: MS-SQL • Version: 2005 • Zugriff über: ADO
Gegf. interessant für Benutzer die mit MSSQL von Konto/BLZ auf IBAN/BIC umsteigen
Liste der Anhänge anzeigen (Anzahl: 3)
Da ich gerade migieren muss von DTA nach IBAN/Swift, hätte ich für Interessenten SQL-Functions die die Umstellung erleichtern. (Derzeit nur für deutsche Daten) >> DE_Iban_Functions.zip
Beispiel:
Code:
Update Kunden set BIC=IMP_Bank.BIC
from IMP_Bank Where IMP_Bank.BankLeitzahl=Kunden.BLZ and Kunden.BIC is NULL and Kunden.LKZ='D' Update Kunden set IBAN=dbo.Gen_DE_IBAN(BLZ,KontoNr) where BLZ is not null and KontoNr is not null and IBAN is NULL and Kunden.LKZ='D' IMP_Bank hätte ich zwar auch als Script, aber sinnvoller ist es sicher die Daten direkt von ![]() Für die delphiseitige Implementierung habe ich mir ein Klasse mit minimalistischen Schnittstellen erstellt
Delphi-Quellcode:
EXE mit DB im Anhang SepaTest.zip
procedure TForm1.act_CreateExecute(Sender: TObject);
var s:TSepa; begin Ads.DisableControls; Ads.First; s := TSepa.Create(TSepaTyp(Kind.ItemIndex),'My_ID 4711 0815','Bummi beim Testen'); try while not Ads.Eof do begin s.AddBuchung(adsEigeneIBAN.asString,adsEigeneBIC.AsString,adsEigenerName.AsString,adsFremdIBAN.AsString,adsFremdBIC.AsString,adsFremdName.AsString,adsBeleginfo.AsString,adsBetrag.Value); Ads.next; end; s.SaveToFile(fn.Text); finally s.Free; Ads.EnableControls; end; fn2.Text := fn.Text; Act_open.Execute; PageControl1.ActivePage := Tabsheet2; end; |
AW: Gegf. interessant für Benutzer die mit MSSQL von Konto/BLZ auf IBAN/BIC umsteige
Schon mal toll, dass du deine Erkenntnisse hier zu Verfügung stellst.
Vielen Dank |
AW: Gegf. interessant für Benutzer die mit MSSQL von Konto/BLZ auf IBAN/BIC umsteige
@Sybok Factor
Danke für den Dank, aber viele Interessenten wird es wahrscheinlich gar nicht geben ... |
AW: Gegf. interessant für Benutzer die mit MSSQL von Konto/BLZ auf IBAN/BIC umsteige
Danke auch!
OT: wg. Full Metal Jacket: Hoffe das hat nichts zu bedeuten! Ich nehm übrigens gern Ferrero Rochee, wenn's mal was zu knabbern gibt. Eigentlich die gleiche Kategorie (zumindest vor dem Auspacken) aber völlig schmerzfrei. |
AW: Gegf. interessant für Benutzer die mit MSSQL von Konto/BLZ auf IBAN/BIC umsteige
Zitat:
|
AW: Gegf. interessant für Benutzer die mit MSSQL von Konto/BLZ auf IBAN/BIC umsteige
Liste der Anhänge anzeigen (Anzahl: 2)
Keiner sagt was ...
Fehlerhafte Version SepaTest.zip jetzt bereinigt im Anhang ... Zudem eine auf 10 Sätze beschränkte Kommandozeilenversion(Beta) eines DTA zu SEPA Konverters. |
AW: Gegf. interessant für Benutzer die mit MSSQL von Konto/BLZ auf IBAN/BIC umsteige
An dieser Stelle sei vielleicht auch einmal der Hinweis auf
![]() ![]() |
AW: Gegf. interessant für Benutzer die mit MSSQL von Konto/BLZ auf IBAN/BIC umsteige
Zitat:
hast Du evtl. eine Wrapper-Datei für die DDL-Aufrufe auf Lager? Ist zwar nicht viel, könnte mir hier aber die Arbeit sparen, wenn Du schon was hast... Danke & Gruß, Marc |
AW: Gegf. interessant für Benutzer die mit MSSQL von Konto/BLZ auf IBAN/BIC umsteige
Ja so eine Wrapper-Datei für Delphi (7 oder 2010) suche ich ebenfalls.
|
AW: Gegf. interessant für Benutzer die mit MSSQL von Konto/BLZ auf IBAN/BIC umsteige
Hi.
Habe sie mittlerweile selber gemacht:
Code:
LG,
interface
{ library declarations } {$WARN SYMBOL_PLATFORM OFF} // dta methods function sevDTA_BICExists(sBIC, sBlz: PAnsiChar): LongInt; stdcall; external 'sevDTA20.dll' delayed; function sevDTA_BLZExists(sBlz: PAnsiChar): LongInt; stdcall; external 'sevDTA20.dll' delayed; function sevDTA_BLZFileDate(sDatum: PAnsiChar): LongInt; stdcall; external 'sevDTA20.dll' delayed; function sevDTA_BLZGetInfo(sBlz, sName, sPz: PAnsiChar): LongInt; stdcall; external 'sevDTA20.dll' delayed; function sevDTA_BLZGetInfoEx(sBlz, sName, sPlz, sOrt, sBIC: PAnsiChar): LongInt; stdcall; external 'sevDTA20.dll' delayed; function sevDTA_CheckCdtrId(sCdtrId: PAnsiChar): LongInt; stdcall; external 'sevDTA20.dll' delayed; function sevDTA_CheckCreditCard(sCardType, sCardNr, sMsgText: PAnsiChar; lLenRet: LongInt): LongInt; stdcall; external 'sevDTA20.dll' delayed; function sevDTA_CheckIBAN(sIBAN: PAnsiChar): LongInt; stdcall; external 'sevDTA20.dll' delayed; function sevDTA_CheckKontoNr(sBlz, sKontoNr, sPz: PAnsiChar): LongInt; stdcall; external 'sevDTA20.dll' delayed; function sevDTA_CreateFile(sFilename: PAnsiChar; bOvrWriteExists: LongInt): LongInt; stdcall; external 'sevDTA20.dll' delayed; function sevDTA_CreateFileEx(sFilename: PAnsiChar; bOvrWriteExists: LongInt; sReferenzNr, sDatum: PAnsiChar): LongInt; stdcall; external 'sevDTA20.dll' delayed; function sevDTA_FileAddRec(lHandle: LongInt; sBlz1, sKtoNr1, sName1, sIntKdNr, sBlz2, sKtoNr2, sName2, sVerwendung, sBetrag: PAnsiChar): LongInt; stdcall; external 'sevDTA20.dll' delayed; function sevDTA_FileAddRecEx(lHandle: LongInt; sBlz1, sKtoNr1, sName1, sIntKdNr, sBlz2, sKtoNr2, sName2, sVerwendung, sBetrag, sTextschluessel, sTextschluesselErw: PAnsiChar): LongInt; stdcall; external 'sevDTA20.dll' delayed; function sevDTA_FileEnd(lHandle: LongInt): LongInt; stdcall; external 'sevDTA20.dll' delayed; function sevDTA_FileInit(lHandle: LongInt; sKz, sBlz, sKtoNr, sName: PAnsiChar; bEuro: LongInt): LongInt; stdcall; external 'sevDTA20.dll' delayed; function sevDTA_Init(sInit: PAnsiChar): LongInt; stdcall; external 'sevDTA20.dll' delayed; function sevDTA_Kontrollsummen(sSumDaten, sSumBlz, sSumKtoNr, sSumBetrag: PAnsiChar): LongInt; stdcall; external 'sevDTA20.dll' delayed; procedure sevDTA_BLZSetPath(sPath: PAnsiChar); stdcall; external 'sevDTA20.dll' delayed; procedure sevDTA_Close(lHandle: LongInt); stdcall; external 'sevDTA20.dll' delayed; procedure sevDTA_Print(hDC: LongInt; sPrnName, sFontName, sName, sBLZ, sKontoNr, sDatum: PAnsiChar); stdcall; external 'sevDTA20.dll' delayed; procedure sevDTA_PrintEx(hDC: LongInt; sPrnName, sFontName, sName, sBLZ, sKontoNr, sDatum, sVolNr, sLogNr: PAnsiChar); stdcall; external 'sevDTA20.dll' delayed; // sepa methods function sevSEPA_CalcIBAN(sBlz, sKontoNr, sBIC, sIBAN: PAnsiChar): LongInt; stdcall; external 'sevDTA20.dll' delayed; function sevSEPA_CreateFile(sFilename: PAnsiChar; bOvrWriteExists: LongInt): LongInt; stdcall; external 'sevDTA20.dll' delayed; function sevSEPA_FileAddRec(lHandle: LongInt; sPmtId, sPmtAmt, sDebCredNm, sIBAN, sBIC, sRmtInf, sMndtId, sMndtDt: PAnsiChar): LongInt; stdcall; external 'sevDTA20.dll' delayed; function sevSEPA_FileEnd(lHandle: LongInt): LongInt; stdcall; external 'sevDTA20.dll' delayed; function sevSEPA_FileInit(lHandle: LongInt; sKz, sInitgPtyName, sDebCredNm, sIBAN, sBIC, sPmtInfId, sExctnDate: PAnsiChar; lLcCode, lSeqType: LongInt; sCdtrId: PAnsiChar): LongInt; stdcall; external 'sevDTA20.dll' delayed; function sevSEPA_IBANIsValid(sIBAN, sBIC: PAnsiChar): LongInt; stdcall; external 'sevDTA20.dll' delayed; function sevSEPA_SetProperty(sProperty, sValue: PAnsiChar): LongInt; stdcall; external 'sevDTA20.dll' delayed; procedure sevSEPA_CloseFile(lHandle: LongInt); stdcall; external 'sevDTA20.dll' delayed; procedure sevSEPA_ExportHTML(sFilename: PAnsiChar); stdcall; external 'sevDTA20.dll' delayed; {$WARN SYMBOL_PLATFORM ON} { error constants } const // initialize ERR_DTA_INIT_OK = 0; ERR_DTA_SUCCESS = 0; ERR_DTA_INIT_FAILURE = -1; // file handle ERR_DTA_NO_FILEHANDLE = 1; ERR_DTA_BAD_FILEHANDLE = 2; // dtaus ERR_DTA_BAD_KZ = 100; ERR_DTA_BAD_BLZ = 101; ERR_DTA_BAD_BLZ_LEN = 102; ERR_DTA_BAD_KTONR = 103; ERR_DTA_BAD_KTONR_LEN = 104; ERR_DTA_BAD_VALUE = 105; ERR_DTA_NO_VALUE = 106; ERR_DTA_NO_NAME = 107; // account ERR_BLZ_OK = 0; ERR_BLZ_NO_FILE = 200; ERR_BLZ_NOT_FOUND = 201; ERR_BLZ_WRONG_FORMAT = 202; ERR_BLZ_KTONR_OK = 0; ERR_BLZ_KTONR_WRONG = 211; ERR_BLZ_KTONR_NOCHECK = 212; // bic ERR_BIC_OK = 0; ERR_BIC_NO_FILE = 200; ERR_BIC_NOT_FOUND = 201; // sepa ERR_SEPA_SUCCESS = 0; ERR_SEPA_BAD_KZ = 300; ERR_SEPA_BAD_IBAN = 301; ERR_SEPA_BAD_BIC = 302; ERR_SEPA_NO_INITGPTYNM = 303; ERR_SEPA_NO_DBTRNM = 304; ERR_SEPA_NO_CDTRNM = 305; ERR_SEPA_NO_VALUE = 306; ERR_SEPA_NO_CDTRID = 307; ERR_SEPA_NO_RMTINF = 308; ERR_SEPA_NO_MNDTID = 309; ERR_SEPA_WRONG_SEQTYPE = 310; ERR_SEPA_NO_FILEHANDLE = 1; ERR_SEPA_BAD_FILEHANDLE = 2; ERR_SEPA_CALCIBAN_ERROR = 400; ERR_SEPA_CALCIBAN_WARNING = 401; ERR_SEPA_CALCIBAN_NOUSAGE = 402; // credit cars ERR_CREDIT_OK = 0; ERR_CREDIT_FIRST_DIGITS = 1; ERR_CREDIT_DIGIT_COUNT = 2; ERR_CREDIT_WRONG_PZ = 4; ERR_CREDIT_UNKNOWN_TYPE = 16; Marc P.S.: Sie ist für Delphi2010 und nutzt das Delayed-Binding... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:37 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz