vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fragen & Antworten rund um sev-Komponenten
sevDTA40 -> DTA_IBANIsValid 
Autor: TIBOS
Datum: 17.10.23 20:09

Moin zusammen,

die Umstellung von sevDTA30 auf sevDTA40 hat soweit ganz gut geklappt, einige Pilotkunden nutzen das inzwischen, aber noch erlebe ich dabei gelegentlich Überraschungen.

Übergebe ich an DTA_IBANIsValid(IBAN, BIC) die Werte
IBAN = 'DE6030050110572208'
BIC = ''

verschwinden Anwendung und auch Entwicklungsumgebung kommentarlos vom Bildschirm. Da hilft auch keine Fehlerabfangroutine.

Die gleichen Werte mit sevSEPA_IBANIsValid(IBAN, BIC) der sevDTA30 verursachen hingegen kein Problem, da wird einfach nur ein Fehler zurückgegeben, wie es sein soll.

Sicher, die IBAN ist ungültig, aber genau das will ich ja eigentlich mit der Funktion feststellen. Vielleicht findet man sowas nur in der Praxis; die Funnktion hat beim Kunden ja schon hunderte IBANs korrekt bearbeitet, nur speziell bei dieser tritt das Problem auf.
Oder mache ich irgendwas falsch?

sevDTA40.DLL Version ist 4.0.12

Danke und Grüße,
Ulrich Horn
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevDTA40 -> DTA_IBANIsValid 
Autor: ModeratorDieter (Moderator)
Datum: 18.10.23 09:24

Ich kann keinerlei Probleme feststellen. Die Funktion liefert 301 (BAD IBAN) zurück.
Kein Absturz.

In welcher Entwicklungsumgebung setzt du die Komponente ein?

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevDTA40 -> DTA_IBANIsValid 
Autor: TIBOS
Datum: 18.10.23 11:30

Visual Studio 6 SP6
Version 9782
Windows 11 Pro

Grüße, Ulrich
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevDTA40 -> DTA_IBANIsValid 
Autor: ModeratorDieter (Moderator)
Datum: 18.10.23 11:31

Dann kann ich es nicht verstehen.
Lässt sich das Problem in einem kleinen Beispielprojekt nachstellen?

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevDTA40 -> DTA_IBANIsValid 
Autor: TIBOS
Datum: 18.10.23 15:59

Ja, lässt sich sicher.

Zunächst mal habe ich direkt nach DTA_INIT folgende SUB aufgerufen:

Sub TestIban()

Dim IBAN$
Dim BIC$

IBAN = "DE6030050110572208"
If DTA_CheckIBAN(IBAN) = 1 Then Stop
If SEPA_IBANIsValid(IBAN, BIC$) = 0 Then
End If

End Sub

Schickt bei mir die IDE zuverlässig ins Nirwana ;)
Entscheidend scheint der Aufruf von DTA_CheckIBAN zu sein. Ohne den gibt es bei SEPA_IBANIsValid kein Problem.

Grüße, Ulrich
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevDTA40 -> DTA_IBANIsValid 
Autor: ModeratorDieter (Moderator)
Datum: 18.10.23 19:51

Sorry, aber ich kann das auch mit diesem Codeschnipsel nicht nachstellen.
ABER: Warum verwendest du nicht die Funktionen aus dem modDTA40vb.bas Modul, also die Wrapper-Funktionen?

Weil: dann müsstest du eigentlich gar keine Anpassungen an deinem bisherigen Quellcode vornehmen.

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevDTA40 -> DTA_IBANIsValid 
Autor: TIBOS
Datum: 19.10.23 10:27

Ich hab's in ein Beispielprojekt verpackt und per Mail geschickt.

Ich verwende Wrapperfunktionen, aber die spielen in diesem Kontext keine Rolle ;)

Grüße, Ulrich
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevDTA40 -> DTA_IBANIsValid 
Autor: ModeratorDieter (Moderator)
Datum: 19.10.23 11:05

Hallo Ulrich,

das Problem ist in deinem Beispiel die SEPA_IBANIsValid Funktion.

Es gibt zwei Lösungen:
Wenn kein BIC vorhanden, dann setzt du die BIC-Variable explizit auf "", also:
BIC = ""
Oder die Routine in der Klasse anpassen:
Function SEPA_IBANIsValid(ByVal IBAN As String, ByVal BIC As String) As Long
  If Status = 1 Then
 
    ' sicherstellen, dass BIC kein NULL-Pointer ist
    If StrPtr(BIC) = 0 Then BIC = ""
 
    SEPA_IBANIsValid = DTA_IBANIsValid(IBAN, BIC)
  End If
...

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Re: sevDTA40 -> DTA_IBANIsValid 
Autor: TIBOS
Datum: 19.10.23 15:46

Aaautsch!

Ich meine, in der VB-Grundlagendoku (in die ich seit 20 Jahren nicht mehr hineingeschaut habe) steht irgendwo, dass man Variablen nicht nur deklarieren, sondern auch initialisieren soll. Macht man oft aus Bequemlichkeit nicht, aber das hätte ich wissen müssen.

Mea culpa und vielen Dank für deine Mühe. Ich bin jedenfalls froh zu dass es nicht an Daten oder DLL liegt, und da nicht irgendwo beim Kunden ein Zeitbömbchen lauert.

Besten Dank und viele Grüße,
Ulrich
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel