AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Cross-Platform-Entwicklung [Android] record befüllen -> AV kommt nicht im Delphi an
Thema durchsuchen
Ansicht
Themen-Optionen

[Android] record befüllen -> AV kommt nicht im Delphi an

Ein Thema von Devil1925 · begonnen am 23. Okt 2017 · letzter Beitrag vom 23. Okt 2017
Antwort Antwort
Benutzerbild von Devil1925
Devil1925

Registriert seit: 20. Nov 2015
Ort: Saerbeck
236 Beiträge
 
Delphi 10.3 Rio
 
#1

[Android] record befüllen -> AV kommt nicht im Delphi an

  Alt 23. Okt 2017, 10:32
Moin, ich habe ein Record, welches Folgendermaßen aussieht:
Delphi-Quellcode:
type
  TRec_Austausch = record
    MaxStep:Integer;
    Importname, MSSQL, WHERE, WhereKunden, SQLITE, Key, Tabelle, SQLITE_Delete, Key2, OhneFeldAenderndeFunktion, MSSQLTabelle, SQLAfterExec:String;
    Filt, Zurueck:Boolean;
  end;
Nun habe ich noch ein Array mit diesem Record, welches ich befülle.
AAustausch:Array of TRec_Austausch; Die Länge des Arrays setze ich vor dem befüllen auf die Maximale anzahl an schritten. (Die länge stimmt auch, habe ich mehrmals überprüft)
Nun befülle ich die Records eines nach dem Anderen wie folgt:
Delphi-Quellcode:
    With AAustausch[Schritt] do
    Begin
      MaxStep := MaxSchritt;
      Importname := 'Kundenstamm';
      MSSQL := 'Select Kunden_Nr, Sortierfeld, Name1, Name2, Strasse, '+
                    'PLZ, Ort, Telefon, EMail, Creation_Date, Changed_Last, '+
                    'Info, Changed_By, Homepage, Autotelefon, Vertreter, FGR_Nr, Anrede, Adressart, Inaktiv, Sperrkennzeichen from Kundenst '+
                    ' inner Join MOBILE_Kunden_'+IntToStr(Station_ID)+' M on m.kdn = kundenst.Kunden_Nr where ';
      WHERE := ' 1=1 ';
      WhereKunden := '';
      SQLITE := 'Select Kunden_Nr, Sortierfeld, Name1, Name2, Strasse, '+
                    'PLZ, Ort, Telefon, EMail, Creation_Date, Changed_Last, '+
                    'Info, Changed_By, Homepage, Autotelefon, Vertreter, FGR_Nr, Anrede, Adressart, Inaktiv, Sperrkennzeichen '+
                    'from Kundenst';
      Key := 'Kunden_Nr';
      Tabelle := 'Kundenst';
      SQLITE_Delete := ReadINITAB('Datenaustausch', 'Filter_SQLITE');
      Filt := True;
      Key2 := '';
      OhneFeldAenderndeFunktion := '';
      Zurueck := True;
      MSSQLTabelle := '';
    End;
Das funktioniert auch ca 20 mal. Dann kommt mein Problem.
das Nächste befüllen erfolgt nach dem selben Schema. Nur das es hier beim setzen der Variable "Importname" knallt. Das besondere daran: die AV wird mir in der App angezeigt, allerdings erscheint diese nie im Delphi. Hier sieht es so aus als wenn der Debug vorgang mit F9 fortgesetzt wurde, also der Pfeil verschwindet komplett und taucht auch nicht wieder auf.
Auf meinen iOS Geräten, die ich hier zur verfügung habe funktioniert das einwandfrei (iPad 3. Generation (iOS 9.3), iPhone 5 (iOS 10.3.3). Auf den Android Geräten nicht (Samsung Note 10.1 (Android 4.1.2) und Alcatel Shine Lite (Android 6.0))
Hat da wer eine Idee? oder braucht ihr noch mehr Infos?
Philipp
Höllische Grüße
Devil
Meistens sitzt das Problem vor dem Bildschirm! - Leider bin das oftmals ich.
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.094 Beiträge
 
Delphi 12 Athens
 
#2

AW: [Android] record befüllen -> AV kommt nicht im Delphi an

  Alt 23. Okt 2017, 10:37
Wie sieht denn Schritt aus ?
Läuftst du in einer externen Schleife von 0 ... 19 durch ?

Mit 1 ... 20 wird es wohl nicht funktionieren.

Rollo
  Mit Zitat antworten Zitat
Benutzerbild von Devil1925
Devil1925

Registriert seit: 20. Nov 2015
Ort: Saerbeck
236 Beiträge
 
Delphi 10.3 Rio
 
#3

AW: [Android] record befüllen -> AV kommt nicht im Delphi an

  Alt 23. Okt 2017, 11:07
Ich habe meinen Fehler gerade gefunden! Ich habe es wohl irgendwie geschafft meine Variable "Schritt" in einem schritt doppelt zu erhöhen. Dementsprechend ist der Fehler logisch.
Jetzt bestehen bei mir nur noch 3 Fragen:

1. Warum Tritt der Fehler nicht auf iOS auf? Da läuft das Ganze einwandfrei durch. (mit dem doppelten erhöhen etc)

2. Warum kommt die AV nicht im Delphi an?

3. Warum tritt die AV erst bei der Zuweisung des 2. Wertes im Record auf und nicht direkt bei dem Versuch auf dieses Record zuzugreifen?
Philipp
Höllische Grüße
Devil
Meistens sitzt das Problem vor dem Bildschirm! - Leider bin das oftmals ich.
  Mit Zitat antworten Zitat
mjustin

Registriert seit: 14. Apr 2008
3.006 Beiträge
 
Delphi 2009 Professional
 
#4

AW: [Android] record befüllen -> AV kommt nicht im Delphi an

  Alt 23. Okt 2017, 13:25
Mysteriös - einen ähnlichen Bug entdeckte ich auch. Er trat auf, als ein Record neuerdings mit R := Default(TMyRecord) initialisiert wurde. Der Effekt war, dass in einem anderen Programmteil eine for ... next Schleife zwei Durchläufe machen wollte, für I = 0 und für I = 1, obwohl der Endwert = 0 war.

Der Quelltext des "Auslösers" und des aufgetretenen "Fehlers" liegen weit auseinander, es war nicht einfach eine Haupt- und eine Subroutine. Entweder ein Bug im Memory Manager, oder ein anderer unentdeckter Seiteneffekt im eigenen Code.
Michael Justin
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz