Fehler beim Importieren von Draft\form\filter

Diskussionen über den Import-Assistent für die Code-Biblothek

Fehler beim Importieren von Draft\form\filter

Beitragvon Andreas Vogt » Mo 15. Jun 2015, 11:34

Hallo,
wollte die Filter Control Klassen importieren, bekomme aber nur eine msgbox mit Fehler 53, Datei nicht gefunden.
Titel der MSgbox ist cmdImportFiles_Click, Hinweis im Fehler-Text ist (cmdImportFiles_Click->ACLibImportWizard).

Andere Module und Klassen lassen sich importieren.
Gruß Andreas
Andreas Vogt
Entwickler
 
Beiträge: 165
Registriert: Do 18. Mär 2010, 18:00
Wohnort: Offenburg
Accessversion: 2.0, 97, 2002, 2003, 2007, 2010
Access-Erfahrung: Fortgeschritten

Re: Fehler beim Importieren von Draft\form\filter

Beitragvon Sten Schmidt » Mo 15. Jun 2015, 12:01

Hallo,

das Problem liegt offenbar in der data/SqlTools.cls, wenn man die Zeile:

Code: Alles auswählen

<replace>data/SqlTools.bas</replace>
 


entfernt, dann klappt der Import. Hier könnte man einen Bug aufmachen...
Sten Schmidt
Entwickler
 
Beiträge: 146
Registriert: Do 18. Mär 2010, 22:24
Accessversion: 2016
Access-Erfahrung: Experte

Re: Fehler beim Importieren von Draft\form\filter

Beitragvon Andreas Vogt » Mo 15. Jun 2015, 13:19

Stimmt,
hatte nämlich in der Statusleiste den Importvorgang hängen von SQLTools.
Ist aber doch kein Bug von AccLib sondern von diesem einen Modul?!

Andreas

/edit
der Fehler in der SQLTools Klasse ist eindeutig das Replace.
Fügt man in das Verzeichnis die Datei SqlTools.bas ein (leere Textdatei) dann funktioniert es.

Aber wozu sollte denn was umbenannt werden? Sehe da momentan wenig Sinn.
Ich mach gleich mal ein Commit mit der geänderten Klasse.
Andreas Vogt
Entwickler
 
Beiträge: 165
Registriert: Do 18. Mär 2010, 18:00
Wohnort: Offenburg
Accessversion: 2.0, 97, 2002, 2003, 2007, 2010
Access-Erfahrung: Fortgeschritten

Re: Fehler beim Importieren von Draft\form\filter

Beitragvon Josef Pötzl » Mo 15. Jun 2015, 14:51

Die Änderung von SqlTools.bas auf SQLTools.cls ist keine Umbenennung sondern eine Implementierungsänderung, da mit der Klasse nun mehrere SQL-Dialekte unterstützt werden können.
Das Problem entsteht, wenn man in einer bestehenden Anwendung die Module aktualisiert, weil im Repository die Datei nicht mehr vorhanden ist.
Für so einen Fall muss man eine "Ersatzdatei" erstellen, die auf die neue Datei verweist.
... gut das auch andere das AcLib-Repo verwenden, bei mir war die Datei zwar im Verzeichnis, aber noch nicht eingecheckt. :)

/edit: Es wird ein Update vom ImportWizard geben, mit dem vorhandene Dateien umbenannt bzw. gelöscht werden, wenn sie durch ein anderes gleichnamiges Codemodul (z. B. Klasse ersetzt Standardmodul) ersetzt werden.

LG
Josef
Josef Pötzl
Moderator
 
Beiträge: 805
Registriert: Mo 30. Nov 2009, 10:08
Wohnort: Klagenfurt
Accessversion: 2016

Re: Fehler beim Importieren von Draft\form\filter

Beitragvon Andreas Vogt » Mo 15. Jun 2015, 15:33

Hallo Josef
Dann wäre es aber gut wenn im Import Wizard die Replacefunktion geändert wird in die Richtung "ReplaceIfFileExists", damit man nicht in einen Fehler hineinläuft und die Dateien trotzdem importiert werden können.
In der Datei ACLibFileManager.cls müsste man nur die Prozedur getCodeLibInfoRepositoryFileReplacement() ändern:
Code: Alles auswählen

Private Sub getCodeLibInfoRepositoryFileReplacement(ByRef cli As CodeLibInfo, ByRef sSourceString As String)
    Dim FileName As String
    FileName = findSubString(sSourceString, SEARCHSTRING_REPLACE_BEGIN, SEARCHSTRING_REPLACE_END)
    If Len(Dir(FileName)) > 0 Then
        cli.RepositoryFileReplacement = Replace(FileName, "\", "/")
    End If
End Sub


Alternativ könnte man die Prozedur zusätzlich zur bestehenden verwenden und umbenennen in getCodeLibInfoRepositoryFileReplacementifExists() und bei der bisherigen entweder ein Err.Raise bringen oder eben eine Abfrage ob man ohne das Replace fortfahren möchte.

Gruß Andreas
Andreas Vogt
Entwickler
 
Beiträge: 165
Registriert: Do 18. Mär 2010, 18:00
Wohnort: Offenburg
Accessversion: 2.0, 97, 2002, 2003, 2007, 2010
Access-Erfahrung: Fortgeschritten

Re: Fehler beim Importieren von Draft\form\filter

Beitragvon Josef Pötzl » Mo 15. Jun 2015, 15:55

Das passt schon so wie es ist. ;)
Ob die Datei im Repo vorhanden ist oder nicht, sollte für das ERsetzen keine Rolle spielen. Daher darf man RepositoryFileReplacement nicht auf Leerstring setzen, wenn die alte Datei nicht im Repo liegt.


Der Replace-Tag in einem Codemodul zeigt an, welches Codemodul durch das neue ersetzt wird.
Ersetzt bedeutet: das alte Codemodul wird nicht mehr benötigt.

Probleme gab es bisher, wenn ein Standardmodul mit einer Klasse ersetzt wird, und die beiden die gleichen Namen hatten. Das ist in der neuen ImportWizard-Version behoben.

LG
Josef
Josef Pötzl
Moderator
 
Beiträge: 805
Registriert: Mo 30. Nov 2009, 10:08
Wohnort: Klagenfurt
Accessversion: 2016

Re: Fehler beim Importieren von Draft\form\filter

Beitragvon Josef Pötzl » Mo 15. Jun 2015, 16:36

Version 1.0.10 ist nun vorhanden. Damit funktioniert nun der Import auch, wenn der VbComponent-Typ wechselt oder die zu ersetzende Datei nicht mehr im Repo ist.

mfg
Josef
Josef Pötzl
Moderator
 
Beiträge: 805
Registriert: Mo 30. Nov 2009, 10:08
Wohnort: Klagenfurt
Accessversion: 2016


Zurück zu AcLib Import Wizard

cron