Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ParamByName geht und geht mal nicht (https://www.delphipraxis.net/184859-parambyname-geht-und-geht-mal-nicht.html)

Walter Landwehr 25. Apr 2015 13:58

Datenbank: Firbird • Version: 2.5.4 • Zugriff über: IBO

ParamByName geht und geht mal nicht
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,

ich mache folgende Zuweisung.

Delphi-Quellcode:
Query_Ziel.ParamByName('PATIENTNR').Value := qryBildAlt.FieldByName('PATIENTNR').AsInteger;
Einige Male funktioniert die Zuweisung, dann kommt aber plötzlich ohne das was geändert wurde diese Meldung: ...Exception der Klasse EVariantInvalidArgError mit der Meldung 'Ungültiges Argument' aufgetreten.

siehe auch den Anhang. Ich weiß nicht wieso diese Meldung kommt Kennt jemand das Problem und wie kann ich das beheben.

Habe schon mit AsInteger probiert aber gleiche Meldung.

Danke für Eure Hilfe.

himitsu 25. Apr 2015 14:20

AW: ParamByName geht und geht mal nicht
 
Zitat:

Zitat von Walter Landwehr (Beitrag 1299259)
Habe schon mit AsInteger probiert aber gleiche Meldung.

Und warum nur halb?

Delphi-Quellcode:
Query_Ziel.ParamByName('PATIENTNR').AsInteger := qryBildAlt.FieldByName('PATIENTNR').AsInteger;


EVariantInvalidArgError > Bei Google suchenVAR_INVALIDARG
Dieser Fehler taucht gern bei Variant-Arrays auf, aber eigentlich sollte das hier nicht vorkommen.

Tritt der Fehler wirklich in dieser Zeile auf, oder zeigt nur Delphi diese Zeile nach dem Fehler an?
Achte bei sowas auch immer auf den Befehl davor, denn im Stacktrace stehen nur Rücksprungadressen und nicht die Sprungadressen. Der Debugger hat da gern mal Probleme den vorherrigen fehlerhaften Befehl zu bestimmen und zeigt dann den Nachfolgenden an.

Eventuell ist das auch nur ein Folgefehler und die eigentliche Ursache liegt wo anders.
z.B. igendwo ein Bufferoverflow, welcher etwas überschreibt und das sich erst an dieser Stelle auswirkt.

PS: Fehlerdialoge wissen was Strg+C ist und im Formum kann man das dann als Text via Strg+V einfügen.

Walter Landwehr 25. Apr 2015 14:38

AW: ParamByName geht und geht mal nicht
 
OK, hier mal die ganze Anweisung:

Delphi-Quellcode:
qryBildAlt.Close;
    qryBildAlt.SQL.Clear;
    qryBildAlt.SQL.Add('select P.patientnr from tbl_patient P order by P.patientnr');
     qryBildAlt.Open;

    if qryBildAlt.RecordCount > 0 then
    begin
      qryBildAlt.First;

      Query_Quelle.Close;
      Query_Quelle.SQL.Clear;
      Query_Quelle.SQL.Add('select * from TBL_PATIENT where PATIENTNR = :PATIENTNR');

      Query_Ziel.Close;
      Query_Ziel.SQL.Clear;
      Query_Ziel.SQL.Add('insert into TBL_PATIENT (PATIENTNR, PATIENTENNUMMER, SUCHWORT, ANREDE, TITEL, VORNAME, NAME, STRASSE, ' +
        'LKZ, PLZ, ORT, BRIEFANREDE, TELEFON, GESCHAEFTSTELEFON, TELEFAX, TELEFAX2, ' +
        'MOBILFUNK, EMAIL, GEBURTSDATUM, GEBURTSTAG, GEBURTSMONAT, GEBURTSMONAT_ZAHL, ' +
        'GEBURTSJAHR, GESCHLECHT, FAMILIENSTAND, KINDER, BERUF, HAUSARZT, GEBUEHSATZ, ' +
        'KASSENNAME, KASSENNUMMER, VERSICHERTENNUMMER, VERISCHERTENSTATUS, GUELTIGBIS, ' +
        'BLUTGRUPPE, AUFNAHMEDATUM, LETZTESBEHANDLUNGSDATUM, NAECHSTERTERMIN, UHRZEIT,' +
        'TERMINGRUND, KOMPRIMIERTERDRUCK, LABORAUFTRAGSNUMMER, BUCHEN, KONTONUMMER,' +
        'ANAMNESE, BEMERKUNG, BILD, DRUCKANZAHL, KRITERIUM1, KRITERIUM2, KRITERIUM3, ' +
        'BANKNAME, BLZ, BANKKONTONUMMER, BANKABBUCHUNG, ANLAGE, ANLAGEBENUTZER, AENDERUNG, ' +
        'AENDERUNGBENUTZER, BEHANDLUNGSZEITVON, BEHANDLUNGSZEITBIS, BEHANDLUNGSTAG, ' +
        'BEHANDLUNGSZEITNEU, BEFUND, FACHARZT, UNTERSUCHUNG, ERLOESKONTO, RECHNUNGSFORMULAR, ' +
        'FAMILIENANAMNESE, KRANKHEITEN, THERAPIEPLAN, SPONTANBERICHT, GELENKTERBERICHT, ' +
        'DAUERDIAGNOSE, RISIKO, RISIKO_BEMERKUNG, GEWICHT, GROESSE, BILDEXT, ZAHLUNGSZIEL, ' +
        'ID, MEDIKATION, VERWANDT, VERSICHERUNGSART, GEBURTSTAGSBRIEF, NEUJAHRSBRIEF, ' +
        'WEIHNACHTSBRIEF, PATDIAGNOSE, PATLEISTUNGEN, KOPFTEXT, FUSSTEXT, PATABSCHLUSS, PRIVATVERSICHERERNR, ' +
        'NAMENSZUSATZ, ZAHLUNGSBEDINGUNGBAR, ZAHLUNGSBEDINGUNGUNBAR, TEXTVORRECHNUNGSPOSITION, MAHNUNG1KOPF, ' +
        'MAHNUNG1FUSS, MAHNUNG2KOPF, MAHNUNG2FUSS, MAHNUNG3KOPF, MAHNUNG3FUSS, RECHNUNGPERMAIL, REZEPTFORMULAR, ' +
        'MAILBODY, GEBURTSZEIT, VERSICHERERAUSNP7, MAILRECHNUNGSFORMULAR, RECHNUNGENOHNEDRUCK, RECHNUNGALSPDF, ' +
        'VERSTORBEN, STERBEDATUM, SERIENBRIEFTEILNAHME, BIC, BIRTHDAYOFTHEYEAR, ZAHLUNGSART, MANDANTENBANK, ' +
        'IBAN, RECHNUNGALSPDFUNDDRUCK, BEHANDLER, BUDGET, GEHOERTZU, A_TEXTVORANGEBOTSPOSITION, A_TEXTNACHANGEBOTSPOSITION, ' +
        'A_BELEGFORMULAR, A_MAILTEXT, A_WERBETEXT, A_DRUCKANZAHL, A_ALS_AMAIL, A_ALS_PDF, A_ALS_PDF_UND_DRUCK, A_OHNE_DRUCK, ' +
        'KV_TEXTVORPOSITION, KV_TEXTNACHPOSITION, KV_BELEGFORMULAR, KV_MAILTEXT, KV_WERBETEXT, KV_DRUCKANZAHL, ' +
        'KV_ALS_MAIL, KV_ALS_PDF, KV_ALS_PDF_UND_DRUCK, KV_OHNE_DRUCK, AU_TEXTVORPOSITION, AU_TEXTNACHPOSITION, ' +
        'AU_BELEGFORMULAR, AU_MAILTEXT, AU_WERBETEXT, AU_DRUCKANZAHL, AU_ALS_PDF, AU_ALS_MAIL, AU_ALS_PDF_UND_DRUCK, ' +
        'AU_OHNE_DRUCK, LI_TEXTVORPOSITION, LI_TEXTNACHPOSITION, LI_BELEGFORMULAR, LI_MAILTEXT, LI_WERBETEXT, ' +
        'LI_DRUCKANZAHL, LI_ALS_MAIL, LI_ALS_PDF, LI_ALS_PDF_UND_DRUCK, LI_OHNE_DRUCK, GU_TEXTVORPOSITION, ' +
        'GU_TEXTNACHPOSITION, GU_BELEGFORMULAR, GU_MAILTEXT, GU_WERBETEXT, GU_DRUCKANZAHL, GU_ALS_MAIL, ' +
        'GU_ALS_PDF, GU_ALS_PDF_UND_DRUCK, GU_OHNE_DRUCK, MA_BELEGFORMULAR, MA_DRUCKANZAHL, MA_ALS_MAIL, ' +
        'MA_MAILTEXT, MA_ALS_PDF, MA_ALS_PDF_UND_DRUCK, MA_OHNE_DRUCK, RE_TEXT_NACH_POSITION, RE_WERBETEXT, ' +
        'FOLGETERMIN, FOLGETERMIN_ERINNERN, SAMMELADRESSE, GEBURTSORT)' +
        'VALUES (:PATIENTNR, :PATIENTENNUMMER, :SUCHWORT, :ANREDE, :TITEL, :VORNAME, :NAME, :STRASSE, ' +
        ':LKZ, :PLZ, :ORT, :BRIEFANREDE, :TELEFON, :GESCHAEFTSTELEFON, :TELEFAX, :TELEFAX2, ' +
        ':MOBILFUNK, :EMAIL, :GEBURTSDATUM, :GEBURTSTAG, :GEBURTSMONAT, :GEBURTSMONAT_ZAHL, ' +
        ':GEBURTSJAHR, :GESCHLECHT, :FAMILIENSTAND, :KINDER, :BERUF, :HAUSARZT, :GEBUEHSATZ, ' +
        ':KASSENNAME, :KASSENNUMMER, :VERSICHERTENNUMMER, :VERISCHERTENSTATUS, :GUELTIGBIS, ' +
        ':BLUTGRUPPE, :AUFNAHMEDATUM, :LETZTESBEHANDLUNGSDATUM, :NAECHSTERTERMIN, :UHRZEIT, ' +
        ':TERMINGRUND, :KOMPRIMIERTERDRUCK, :LABORAUFTRAGSNUMMER, :BUCHEN, :KONTONUMMER,' +
        ':ANAMNESE, :BEMERKUNG, :BILD, :DRUCKANZAHL, :KRITERIUM1, :KRITERIUM2, :KRITERIUM3, ' +
        ':BANKNAME, :BLZ, :BANKKONTONUMMER, :BANKABBUCHUNG, :ANLAGE, :ANLAGEBENUTZER, :AENDERUNG, ' +
        ':AENDERUNGBENUTZER, :BEHANDLUNGSZEITVON, :BEHANDLUNGSZEITBIS, :BEHANDLUNGSTAG, ' +
        ':BEHANDLUNGSZEITNEU, :BEFUND, :FACHARZT, :UNTERSUCHUNG, :ERLOESKONTO, :RECHNUNGSFORMULAR, ' +
        ':FAMILIENANAMNESE, :KRANKHEITEN, :THERAPIEPLAN, :SPONTANBERICHT, :GELENKTERBERICHT, ' +
        ':DAUERDIAGNOSE, :RISIKO, :RISIKO_BEMERKUNG, :GEWICHT, :GROESSE, :BILDEXT, :ZAHLUNGSZIEL, ' +
        ':ID, :MEDIKATION, :VERWANDT, :VERSICHERUNGSART, :GEBURTSTAGSBRIEF, :NEUJAHRSBRIEF, ' +
        ':WEIHNACHTSBRIEF, :PATDIAGNOSE, :PATLEISTUNGEN, :KOPFTEXT, :FUSSTEXT, :PATABSCHLUSS, :PRIVATVERSICHERERNR, ' +
        ':NAMENSZUSATZ, :ZAHLUNGSBEDINGUNGBAR, :ZAHLUNGSBEDINGUNGUNBAR, :TEXTVORRECHNUNGSPOSITION, :MAHNUNG1KOPF, ' +
        ':MAHNUNG1FUSS, :MAHNUNG2KOPF, :MAHNUNG2FUSS, :MAHNUNG3KOPF, :MAHNUNG3FUSS, :RECHNUNGPERMAIL, :REZEPTFORMULAR, ' +
        ':MAILBODY, :GEBURTSZEIT, :VERSICHERERAUSNP7, :MAILRECHNUNGSFORMULAR, :RECHNUNGENOHNEDRUCK, :RECHNUNGALSPDF, ' +
        ':VERSTORBEN, :STERBEDATUM, :SERIENBRIEFTEILNAHME, :BIC, :BIRTHDAYOFTHEYEAR, :ZAHLUNGSART, :MANDANTENBANK, ' +
        ':IBAN, :RECHNUNGALSPDFUNDDRUCK, :BEHANDLER, :BUDGET, :GEHOERTZU, :A_TEXTVORANGEBOTSPOSITION, :A_TEXTNACHANGEBOTSPOSITION, ' +
        ':A_BELEGFORMULAR, :A_MAILTEXT, :A_WERBETEXT, :A_DRUCKANZAHL, :A_ALS_AMAIL, :A_ALS_PDF, :A_ALS_PDF_UND_DRUCK, :A_OHNE_DRUCK, ' +
        ':KV_TEXTVORPOSITION, :KV_TEXTNACHPOSITION, :KV_BELEGFORMULAR, :KV_MAILTEXT, :KV_WERBETEXT, :KV_DRUCKANZAHL, ' +
        ':KV_ALS_MAIL, :KV_ALS_PDF, :KV_ALS_PDF_UND_DRUCK, :KV_OHNE_DRUCK, :AU_TEXTVORPOSITION, :AU_TEXTNACHPOSITION, ' +
        ':AU_BELEGFORMULAR, :AU_MAILTEXT, :AU_WERBETEXT, :AU_DRUCKANZAHL, :AU_ALS_PDF, :AU_ALS_MAIL, :AU_ALS_PDF_UND_DRUCK, ' +
        ':AU_OHNE_DRUCK, :LI_TEXTVORPOSITION, :LI_TEXTNACHPOSITION, :LI_BELEGFORMULAR, :LI_MAILTEXT, :LI_WERBETEXT, ' +
        ':LI_DRUCKANZAHL, :LI_ALS_MAIL, :LI_ALS_PDF, :LI_ALS_PDF_UND_DRUCK, :LI_OHNE_DRUCK, :GU_TEXTVORPOSITION, ' +
        ':GU_TEXTNACHPOSITION, :GU_BELEGFORMULAR, :GU_MAILTEXT, :GU_WERBETEXT, :GU_DRUCKANZAHL, :GU_ALS_MAIL, ' +
        ':GU_ALS_PDF, :GU_ALS_PDF_UND_DRUCK, :GU_OHNE_DRUCK, :MA_BELEGFORMULAR, :MA_DRUCKANZAHL, :MA_ALS_MAIL, ' +
        ':MA_MAILTEXT, :MA_ALS_PDF, :MA_ALS_PDF_UND_DRUCK, :MA_OHNE_DRUCK, :RE_TEXT_NACH_POSITION, :RE_WERBETEXT, ' +
        ':FOLGETERMIN, :FOLGETERMIN_ERINNERN, :SAMMELADRESSE, :GEBURTSORT)');


      while not qryBildAlt.eof do
      begin
        Query_Quelle.close;
        Query_Quelle.ParamByName('PATIENTNR').Value := qryBildAlt.FieldByName('PATIENTNR').AsInteger;
        Query_Quelle.Open;

        Query_Ziel.ParamByName('PATIENTNR').Value := qryBildAlt.FieldByName('PATIENTNR').AsInteger;
        Query_Ziel.ParamByName('PATIENTENNUMMER').AsInteger := Query_Quelle.FieldByName('PATIENTENNUMMER').AsInteger;
        Query_Ziel.ParamByName('SUCHWORT').AsString := Query_Quelle.FieldByName('SUCHWORT').AsString;
        Query_Ziel.ParamByName('ANREDE').AsString := Query_Quelle.FieldByName('ANREDE').AsString;
        Query_Ziel.ParamByName('TITEL').AsString := Query_Quelle.FieldByName('TITEL').AsString;
        Query_Ziel.ParamByName('VORNAME').AsString := Query_Quelle.FieldByName('VORNAME').AsString;
        Query_Ziel.ParamByName('NAME').AsString := Query_Quelle.FieldByName('NAME').AsString;
        Query_Ziel.ParamByName('STRASSE').AsString := Query_Quelle.FieldByName('STRASSE').AsString;
        Query_Ziel.ParamByName('LKZ').AsString := Query_Quelle.FieldByName('LKZ').AsString;
        Query_Ziel.ParamByName('PLZ').AsString := Query_Quelle.FieldByName('PLZ').AsString;
        Query_Ziel.ParamByName('ORT').AsString := Query_Quelle.FieldByName('ORT').AsString;
        Query_Ziel.ParamByName('BRIEFANREDE').AsString := Query_Quelle.FieldByName('BRIEFANREDE').AsString;
        Query_Ziel.ParamByName('TELEFON').AsString := Query_Quelle.FieldByName('TELEFON').AsString;
        Query_Ziel.ParamByName('GESCHAEFTSTELEFON').AsString := Query_Quelle.FieldByName('GESCHAEFTSTELEFON').AsString;
        Query_Ziel.ParamByName('TELEFAX').AsString := Query_Quelle.FieldByName('TELEFAX').AsString;
        Query_Ziel.ParamByName('TELEFAX2').AsString := Query_Quelle.FieldByName('TELEFAX2').AsString;
        Query_Ziel.ParamByName('MOBILFUNK').AsString := Query_Quelle.FieldByName('MOBILFUNK').AsString;
        Query_Ziel.ParamByName('EMAIL').AsString := Query_Quelle.FieldByName('EMAIL').AsString;
        Query_Ziel.ParamByName('GEBURTSDATUM').AsDateTime := Query_Quelle.FieldByName('GEBURTSDATUM').AsDateTime;
            if Query_Quelle.FieldByName('GEBURTSTAG').AsInteger = Null then
           Query_Quelle.FieldByName('GEBURTSTAG').AsInteger := 0
        else
           Query_Ziel.ParamByName('GEBURTSTAG').AsInteger := Query_Quelle.FieldByName('GEBURTSTAG').AsInteger;
        Query_Ziel.ParamByName('GEBURTSMONAT').AsString := Query_Quelle.FieldByName('GEBURTSMONAT').AsString;
        if Query_Quelle.FieldByName('GEBURTSMONAT_ZAHL').AsInteger = Null then
           Query_Quelle.FieldByName('GEBURTSMONAT_ZAHL').AsInteger := 0
        else
           Query_Ziel.ParamByName('GEBURTSMONAT_ZAHL').AsInteger := Query_Quelle.FieldByName('GEBURTSMONAT_ZAHL').AsInteger;
            if Query_Quelle.FieldByName('GEBURTSJAHR').AsInteger = Null then
           Query_Quelle.FieldByName('GEBURTSJAHR').AsInteger := 0
        else
           Query_Ziel.ParamByName('GEBURTSJAHR').AsInteger := Query_Quelle.FieldByName('GEBURTSJAHR').AsInteger;
        Query_Ziel.ParamByName('GESCHLECHT').AsString := Query_Quelle.FieldByName('GESCHLECHT').AsString;
        Query_Ziel.ParamByName('FAMILIENSTAND').AsString := Query_Quelle.FieldByName('FAMILIENSTAND').AsString;
        Query_Ziel.ParamByName('KINDER').AsInteger := Query_Quelle.FieldByName('KINDER').AsInteger;
        Query_Ziel.ParamByName('BERUF').AsString := Query_Quelle.FieldByName('BERUF').AsString;
        Query_Ziel.ParamByName('HAUSARZT').AsString := Query_Quelle.FieldByName('HAUSARZT').AsString;
        Query_Ziel.ParamByName('GEBUEHSATZ').AsString := Query_Quelle.FieldByName('GEBUEHSATZ').AsString;
        Query_Ziel.ParamByName('KASSENNAME').AsString := Query_Quelle.FieldByName('KASSENNAME').AsString;
        Query_Ziel.ParamByName('KASSENNUMMER').AsString := Query_Quelle.FieldByName('KASSENNUMMER').AsString;
        Query_Ziel.ParamByName('VERSICHERTENNUMMER').AsString := Query_Quelle.FieldByName('VERSICHERTENNUMMER').AsString;
        Query_Ziel.ParamByName('VERISCHERTENSTATUS').AsString := Query_Quelle.FieldByName('VERISCHERTENSTATUS').AsString;
        Query_Ziel.ParamByName('GUELTIGBIS').AsDateTime := Query_Quelle.FieldByName('GUELTIGBIS').AsDateTime;
        Query_Ziel.ParamByName('BLUTGRUPPE').AsString := Query_Quelle.FieldByName('BLUTGRUPPE').AsString;
        Query_Ziel.ParamByName('AUFNAHMEDATUM').AsDateTime := Query_Quelle.FieldByName('AUFNAHMEDATUM').AsDateTime;
        Query_Ziel.ParamByName('LETZTESBEHANDLUNGSDATUM').AsDateTime := Query_Quelle.FieldByName('LETZTESBEHANDLUNGSDATUM').AsDateTime;
        Query_Ziel.ParamByName('NAECHSTERTERMIN').AsDateTime := Query_Quelle.FieldByName('NAECHSTERTERMIN').AsDateTime;
        Query_Ziel.ParamByName('UHRZEIT').AsDateTime := Query_Quelle.FieldByName('UHRZEIT').AsDateTime;
        Query_Ziel.ParamByName('TERMINGRUND').AsString := Query_Quelle.FieldByName('TERMINGRUND').AsString;
        Query_Ziel.ParamByName('KOMPRIMIERTERDRUCK').AsString := Query_Quelle.FieldByName('KOMPRIMIERTERDRUCK').AsString;
        Query_Ziel.ParamByName('LABORAUFTRAGSNUMMER').AsString := Query_Quelle.FieldByName('LABORAUFTRAGSNUMMER').AsString;
        Query_Ziel.ParamByName('BUCHEN').AsString := Query_Quelle.FieldByName('BUCHEN').AsString;
        if Query_Quelle.FieldByName('KONTONUMMER').AsInteger = Null then
           Query_Quelle.FieldByName('KONTONUMMER').AsInteger := 1200
        else
           Query_Ziel.ParamByName('KONTONUMMER').AsInteger := Query_Quelle.FieldByName('KONTONUMMER').AsInteger;
        Query_Ziel.ParamByName('ANAMNESE').AsString := Query_Quelle.FieldByName('ANAMNESE').AsString;
        Query_Ziel.ParamByName('BEMERKUNG').AsString := Query_Quelle.FieldByName('BEMERKUNG').AsString;
        Query_Ziel.ParamByName('BILD').AsString := Query_Quelle.FieldByName('BILD').AsString;
        if Query_Quelle.FieldByName('DRUCKANZAHL').AsInteger = Null then
           Query_Quelle.FieldByName('DRUCKANZAHL').AsInteger := 1
        else
           Query_Ziel.ParamByName('DRUCKANZAHL').AsInteger := Query_Quelle.FieldByName('DRUCKANZAHL').AsInteger;
        Query_Ziel.ParamByName('KRITERIUM1').AsString := Query_Quelle.FieldByName('KRITERIUM1').AsString;
        Query_Ziel.ParamByName('KRITERIUM2').AsString := Query_Quelle.FieldByName('KRITERIUM2').AsString;
        Query_Ziel.ParamByName('KRITERIUM3').AsString := Query_Quelle.FieldByName('KRITERIUM3').AsString;
        Query_Ziel.ParamByName('BANKNAME').AsString := Query_Quelle.FieldByName('BANKNAME').AsString;
        Query_Ziel.ParamByName('BLZ').AsString := Query_Quelle.FieldByName('BLZ').AsString;
        Query_Ziel.ParamByName('BANKKONTONUMMER').AsString := Query_Quelle.FieldByName('BANKKONTONUMMER').AsString;
        Query_Ziel.ParamByName('BANKABBUCHUNG').AsString := Query_Quelle.FieldByName('BANKABBUCHUNG').AsString;
        Query_Ziel.ParamByName('ANLAGE').AsDateTime := Query_Quelle.FieldByName('ANLAGE').AsDateTime;
        Query_Ziel.ParamByName('ANLAGEBENUTZER').AsString := Query_Quelle.FieldByName('ANLAGEBENUTZER').AsString;
        Query_Ziel.ParamByName('AENDERUNG').AsDateTime := Query_Quelle.FieldByName('AENDERUNG').AsDateTime;
        Query_Ziel.ParamByName('AENDERUNGBENUTZER').AsString := Query_Quelle.FieldByName('AENDERUNGBENUTZER').AsString;
        Query_Ziel.ParamByName('BEHANDLUNGSZEITVON').AsDateTime := Query_Quelle.FieldByName('BEHANDLUNGSZEITVON').AsDateTime;
        Query_Ziel.ParamByName('BEHANDLUNGSZEITBIS').AsDateTime := Query_Quelle.FieldByName('BEHANDLUNGSZEITBIS').AsDateTime;
        Query_Ziel.ParamByName('BEHANDLUNGSTAG').AsDateTime := Query_Quelle.FieldByName('BEHANDLUNGSTAG').AsDateTime;
        Query_Ziel.ParamByName('BEHANDLUNGSZEITNEU').AsDateTime := Query_Quelle.FieldByName('BEHANDLUNGSZEITNEU').AsDateTime;
        Query_Ziel.ParamByName('BEFUND').AsString := Query_Quelle.FieldByName('BEFUND').AsString;
        Query_Ziel.ParamByName('FACHARZT').AsString := Query_Quelle.FieldByName('FACHARZT').AsString;
        Query_Ziel.ParamByName('UNTERSUCHUNG').AsString := Query_Quelle.FieldByName('UNTERSUCHUNG').AsString;
        if Query_Quelle.FieldByName('ERLOESKONTO').AsInteger = Null then
           Query_Quelle.FieldByName('ERLOESKONTO').AsInteger := 0
        else
           Query_Ziel.ParamByName('ERLOESKONTO').AsInteger := Query_Quelle.FieldByName('ERLOESKONTO').AsInteger;
        Query_Ziel.ParamByName('RECHNUNGSFORMULAR').AsString := Query_Quelle.FieldByName('RECHNUNGSFORMULAR').AsString;
        Query_Ziel.ParamByName('FAMILIENANAMNESE').AsString := Query_Quelle.FieldByName('FAMILIENANAMNESE').AsString;
        Query_Ziel.ParamByName('KRANKHEITEN').AsString := Query_Quelle.FieldByName('KRANKHEITEN').AsString;
        Query_Ziel.ParamByName('THERAPIEPLAN').AsString := Query_Quelle.FieldByName('THERAPIEPLAN').AsString;
        Query_Ziel.ParamByName('SPONTANBERICHT').AsString := Query_Quelle.FieldByName('SPONTANBERICHT').AsString;
        Query_Ziel.ParamByName('GELENKTERBERICHT').AsString := Query_Quelle.FieldByName('GELENKTERBERICHT').AsString;
        Query_Ziel.ParamByName('DAUERDIAGNOSE').AsString := Query_Quelle.FieldByName('DAUERDIAGNOSE').AsString;
        Query_Ziel.ParamByName('RISIKO').AsString := Query_Quelle.FieldByName('RISIKO').AsString;
        Query_Ziel.ParamByName('RISIKO_BEMERKUNG').Value := Query_Quelle.FieldByName('RISIKO_BEMERKUNG').AsString;
        if Query_Quelle.FieldByName('GEWICHT').AsFloat = Null then
           Query_Quelle.FieldByName('GEWICHT').AsFloat := 0
        else
           Query_Ziel.ParamByName('GEWICHT').AsFloat := Query_Quelle.FieldByName('GEWICHT').AsFloat;
        if Query_Quelle.FieldByName('GROESSE').AsInteger = Null then
           Query_Quelle.FieldByName('GROESSE').AsInteger := 0
        else
           Query_Ziel.ParamByName('GROESSE').AsInteger := Query_Quelle.FieldByName('GROESSE').AsInteger;
        Query_Ziel.ParamByName('BILDEXT').AsString := Query_Quelle.FieldByName('BILDEXT').AsString;
        if Query_Quelle.FieldByName('ZAHLUNGSZIEL').AsInteger = Null then
           Query_Quelle.FieldByName('ZAHLUNGSZIEL').AsInteger := 0
        else
           Query_Ziel.ParamByName('ZAHLUNGSZIEL').AsInteger := Query_Quelle.FieldByName('ZAHLUNGSZIEL').AsInteger;
        if Query_Quelle.FieldByName('ID').AsInteger = Null then
           Query_Quelle.FieldByName('ID').AsInteger := 0
        else
           Query_Ziel.ParamByName('ID').AsInteger := Query_Quelle.FieldByName('ID').AsInteger;
        Query_Ziel.ParamByName('MEDIKATION').AsString := Query_Quelle.FieldByName('MEDIKATION').AsString;
        Query_Ziel.ParamByName('VERWANDT').AsString := Query_Quelle.FieldByName('VERWANDT').AsString;
        Query_Ziel.ParamByName('VERSICHERUNGSART').AsString := Query_Quelle.FieldByName('VERSICHERUNGSART').AsString;
        Query_Ziel.ParamByName('GEBURTSTAGSBRIEF').AsString := Query_Quelle.FieldByName('GEBURTSTAGSBRIEF').AsString;
        Query_Ziel.ParamByName('NEUJAHRSBRIEF').AsString := Query_Quelle.FieldByName('NEUJAHRSBRIEF').AsString;
        Query_Ziel.ParamByName('WEIHNACHTSBRIEF').AsString := Query_Quelle.FieldByName('WEIHNACHTSBRIEF').AsString;
        Query_Ziel.ParamByName('PATDIAGNOSE').AsString := Query_Quelle.FieldByName('PATDIAGNOSE').AsString;
        Query_Ziel.ParamByName('PATLEISTUNGEN').AsString := Query_Quelle.FieldByName('PATLEISTUNGEN').AsString;
        Query_Ziel.ParamByName('KOPFTEXT').AsString := Query_Quelle.FieldByName('KOPFTEXT').AsString;
        Query_Ziel.ParamByName('FUSSTEXT').AsString := Query_Quelle.FieldByName('FUSSTEXT').AsString;
        Query_Ziel.ParamByName('PATABSCHLUSS').AsString := Query_Quelle.FieldByName('PATABSCHLUSS').AsString;
        if Query_Quelle.FieldByName('PRIVATVERSICHERERNR').AsInteger = Null then
           Query_Quelle.FieldByName('PRIVATVERSICHERERNR').AsInteger := 0
        else
           Query_Ziel.ParamByName('PRIVATVERSICHERERNR').AsInteger := Query_Quelle.FieldByName('PRIVATVERSICHERERNR').AsInteger;
        Query_Ziel.ParamByName('NAMENSZUSATZ').AsString := Query_Quelle.FieldByName('NAMENSZUSATZ').AsString;
        if Query_Quelle.FieldByName('ZAHLUNGSBEDINGUNGBAR').AsInteger = Null then
           Query_Quelle.FieldByName('ZAHLUNGSBEDINGUNGBAR').AsInteger := 0
        else
           Query_Ziel.ParamByName('ZAHLUNGSBEDINGUNGBAR').AsInteger := Query_Quelle.FieldByName('ZAHLUNGSBEDINGUNGBAR').AsInteger;
        if Query_Quelle.FieldByName('ZAHLUNGSBEDINGUNGUNBAR').AsInteger = Null then
           Query_Quelle.FieldByName('ZAHLUNGSBEDINGUNGUNBAR').AsInteger := 0
        else
           Query_Ziel.ParamByName('ZAHLUNGSBEDINGUNGUNBAR').AsInteger := Query_Quelle.FieldByName('ZAHLUNGSBEDINGUNGUNBAR').AsInteger;
        if Query_Quelle.FieldByName('TEXTVORRECHNUNGSPOSITION').AsInteger = Null then
           Query_Quelle.FieldByName('TEXTVORRECHNUNGSPOSITION').AsInteger := 0
        else
           Query_Ziel.ParamByName('TEXTVORRECHNUNGSPOSITION').AsInteger := Query_Quelle.FieldByName('TEXTVORRECHNUNGSPOSITION').AsInteger;
        if Query_Quelle.FieldByName('MAHNUNG1KOPF').AsInteger = Null then
           Query_Quelle.FieldByName('MAHNUNG1KOPF').AsInteger := 0
        else
           Query_Ziel.ParamByName('MAHNUNG1KOPF').AsInteger := Query_Quelle.FieldByName('MAHNUNG1KOPF').AsInteger;
        if Query_Quelle.FieldByName('MAHNUNG1FUSS').AsInteger = Null then
           Query_Quelle.FieldByName('MAHNUNG1FUSS').AsInteger := 0
        else
           Query_Ziel.ParamByName('MAHNUNG1FUSS').AsInteger := Query_Quelle.FieldByName('MAHNUNG1FUSS').AsInteger;
        if Query_Quelle.FieldByName('MAHNUNG2KOPF').AsInteger = Null then
           Query_Quelle.FieldByName('MAHNUNG2KOPF').AsInteger := 0
        else
           Query_Ziel.ParamByName('MAHNUNG2KOPF').AsInteger := Query_Quelle.FieldByName('MAHNUNG2KOPF').AsInteger;
        if Query_Quelle.FieldByName('MAHNUNG2FUSS').AsInteger = Null then
           Query_Quelle.FieldByName('MAHNUNG2FUSS').AsInteger := 0
        else
           Query_Ziel.ParamByName('MAHNUNG2FUSS').AsInteger := Query_Quelle.FieldByName('MAHNUNG2FUSS').AsInteger;
        if Query_Quelle.FieldByName('MAHNUNG3KOPF').AsInteger = Null then
           Query_Quelle.FieldByName('MAHNUNG3KOPF').AsInteger := 0
        else
           Query_Ziel.ParamByName('MAHNUNG3KOPF').AsInteger := Query_Quelle.FieldByName('MAHNUNG3KOPF').AsInteger;
        if Query_Quelle.FieldByName('MAHNUNG3FUSS').AsInteger = Null then
           Query_Quelle.FieldByName('MAHNUNG3FUSS').AsInteger := 0
        else
           Query_Ziel.ParamByName('MAHNUNG3FUSS').AsInteger := Query_Quelle.FieldByName('MAHNUNG3FUSS').AsInteger;
        Query_Ziel.ParamByName('RECHNUNGPERMAIL').AsString := Query_Quelle.FieldByName('RECHNUNGPERMAIL').AsString;
        Query_Ziel.ParamByName('REZEPTFORMULAR').AsString := Query_Quelle.FieldByName('REZEPTFORMULAR').AsString;
        if Query_Quelle.FieldByName('MAILBODY').AsInteger = Null then
           Query_Quelle.FieldByName('MAILBODY').AsInteger := 0
        else
           Query_Ziel.ParamByName('MAILBODY').AsInteger := Query_Quelle.FieldByName('MAILBODY').AsInteger;
        Query_Ziel.ParamByName('GEBURTSZEIT').AsDate := Query_Quelle.FieldByName('GEBURTSZEIT').AsDateTime;
        Query_Ziel.ParamByName('VERSICHERERAUSNP7').AsString := Query_Quelle.FieldByName('VERSICHERERAUSNP7').AsString;
        Query_Ziel.ParamByName('MAILRECHNUNGSFORMULAR').AsString := Query_Quelle.FieldByName('MAILRECHNUNGSFORMULAR').AsString;
        Query_Ziel.ParamByName('RECHNUNGENOHNEDRUCK').Value := Query_Quelle.FieldByName('RECHNUNGENOHNEDRUCK').AsString;
        Query_Ziel.ParamByName('RECHNUNGALSPDF').AsString := Query_Quelle.FieldByName('RECHNUNGALSPDF').AsString;
        Query_Ziel.ParamByName('VERSTORBEN').AsString := Query_Quelle.FieldByName('VERSTORBEN').AsString;
        Query_Ziel.ParamByName('STERBEDATUM').AsDateTime := Query_Quelle.FieldByName('STERBEDATUM').AsDateTime;
        Query_Ziel.ParamByName('SERIENBRIEFTEILNAHME').Value := Query_Quelle.FieldByName('SERIENBRIEFTEILNAHME').AsString;
        Query_Ziel.ParamByName('BIC').AsString := Query_Quelle.FieldByName('BIC').AsString;
        if Query_Quelle.FieldByName('BIRTHDAYOFTHEYEAR').AsInteger = Null then
           Query_Quelle.FieldByName('BIRTHDAYOFTHEYEAR').AsInteger := 0
        else
           Query_Ziel.ParamByName('BIRTHDAYOFTHEYEAR').AsInteger := Query_Quelle.FieldByName('BIRTHDAYOFTHEYEAR').AsInteger;
        Query_Ziel.ParamByName('ZAHLUNGSART').AsString := Query_Quelle.FieldByName('ZAHLUNGSART').AsString;
        Query_Ziel.ParamByName('MANDANTENBANK').AsString := Query_Quelle.FieldByName('MANDANTENBANK').AsString;
        Query_Ziel.ParamByName('IBAN').AsString := Query_Quelle.FieldByName('IBAN').AsString;
        Query_Ziel.ParamByName('RECHNUNGALSPDFUNDDRUCK').AsString := Query_Quelle.FieldByName('RECHNUNGALSPDFUNDDRUCK').AsString;
        Query_Ziel.ParamByName('BEHANDLER').AsString := Query_Quelle.FieldByName('BEHANDLER').AsString;
        if Query_Quelle.FieldByName('BUDGET').AsFloat = Null then
           Query_Ziel.ParamByName('BUDGET').AsFloat := 0
        else
           Query_Ziel.ParamByName('BUDGET').AsFloat := Query_Quelle.FieldByName('BUDGET').AsFloat;

        Query_Ziel.ExecSQL;

        qryBildAlt.next;
      end;
  end;
Beim Debuggern tritt der Fehler genau in der Zeile auf.

Strg + c und Strg + v funktioniert bei mir nicht.

himitsu 25. Apr 2015 15:10

AW: ParamByName geht und geht mal nicht
 
Eigentlich müsste da sowas bei rauskommen. :gruebel:
Zitat:

---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Project3.exe ist eine Exception der Klasse Exception mit der Meldung 'Fehlermeldung' aufgetreten.
---------------------------
Anhalten Fortsetzen Hilfe
---------------------------
Zitat:

Delphi-Quellcode:
if Query_Quelle.FieldByName('xxxxx').AsInteger = Null then
   Query_Quelle.FieldByName('xxxxx').AsInteger := 0
else
   Query_Ziel.ParamByName('xxxxx').AsInteger := Query_Quelle.FieldByName('xxxxx').AsInteger;

Sicher, daß es so stimmt?

Delphi-Quellcode:
AsInteger = Null
wird niemals True liefern, denn 0 <> NULL.
AsInteger gibt eine 0 zurück, wenn der Wert des Feldes NULL ist.

"Query_Quelle.FieldByName('xxxxx').AsInteger := 0" ist garantiert das falsche DataSet.

Du meinst bestimmt
Delphi-Quellcode:
if Query_Quelle.FieldByName('xxxxx').IsNull then
   Query_Ziel.FieldByName('xxxxx').AsInteger := 0
else
   Query_Ziel.ParamByName('xxxxx').AsInteger := Query_Quelle.FieldByName('xxxxx').AsInteger;
Aber da AsInteger sowieso 0 liefert, wenn NULL, kann man das alles weglassen.
Delphi-Quellcode:
Query_Ziel.ParamByName('xxxxx').AsInteger := Query_Quelle.FieldByName('xxxxx').AsInteger;
reicht aus, genauso wie doch auch AsString ein NULL in '' umwandelt, bzw. AsFloat in 0.


Was genau soll eigentlich der Code machen?
NULL in 0, bzw. '' umwandeln?

Walter Landwehr 25. Apr 2015 15:54

AW: ParamByName geht und geht mal nicht
 
So habe es wieder abgeändert, bringt aber nichts. Fehler kommt mal, mal nicht.

Delphi-Quellcode:
while not qryBildAlt.eof do
      begin
        Query_Quelle.close;
        Query_Quelle.ParamByName('PATIENTNR').AsInteger:= qryBildAlt.FieldByName('PATIENTNR').AsInteger;
        Query_Quelle.Open;

        Query_Ziel.ParamByName('PATIENTNR').Value := qryBildAlt.FieldByName('PATIENTNR').AsInteger;
        Query_Ziel.ParamByName('PATIENTENNUMMER').AsInteger := Query_Quelle.FieldByName('PATIENTENNUMMER').AsInteger;
        Query_Ziel.ParamByName('SUCHWORT').AsString := Query_Quelle.FieldByName('SUCHWORT').AsString;
        Query_Ziel.ParamByName('ANREDE').AsString := Query_Quelle.FieldByName('ANREDE').AsString;
        Query_Ziel.ParamByName('TITEL').AsString := Query_Quelle.FieldByName('TITEL').AsString;
        Query_Ziel.ParamByName('VORNAME').AsString := Query_Quelle.FieldByName('VORNAME').AsString;
        Query_Ziel.ParamByName('NAME').AsString := Query_Quelle.FieldByName('NAME').AsString;
        Query_Ziel.ParamByName('STRASSE').AsString := Query_Quelle.FieldByName('STRASSE').AsString;
        Query_Ziel.ParamByName('LKZ').AsString := Query_Quelle.FieldByName('LKZ').AsString;
        Query_Ziel.ParamByName('PLZ').AsString := Query_Quelle.FieldByName('PLZ').AsString;
        Query_Ziel.ParamByName('ORT').AsString := Query_Quelle.FieldByName('ORT').AsString;
        Query_Ziel.ParamByName('BRIEFANREDE').AsString := Query_Quelle.FieldByName('BRIEFANREDE').AsString;
        Query_Ziel.ParamByName('TELEFON').AsString := Query_Quelle.FieldByName('TELEFON').AsString;
        Query_Ziel.ParamByName('GESCHAEFTSTELEFON').AsString := Query_Quelle.FieldByName('GESCHAEFTSTELEFON').AsString;
        Query_Ziel.ParamByName('TELEFAX').AsString := Query_Quelle.FieldByName('TELEFAX').AsString;
        Query_Ziel.ParamByName('TELEFAX2').AsString := Query_Quelle.FieldByName('TELEFAX2').AsString;
        Query_Ziel.ParamByName('MOBILFUNK').AsString := Query_Quelle.FieldByName('MOBILFUNK').AsString;
        Query_Ziel.ParamByName('EMAIL').AsString := Query_Quelle.FieldByName('EMAIL').AsString;
        Query_Ziel.ParamByName('GEBURTSDATUM').AsDateTime := Query_Quelle.FieldByName('GEBURTSDATUM').AsDateTime;
          Query_Ziel.ParamByName('GEBURTSTAG').AsInteger := Query_Quelle.FieldByName('GEBURTSTAG').AsInteger;
        Query_Ziel.ParamByName('GEBURTSMONAT').AsString := Query_Quelle.FieldByName('GEBURTSMONAT').AsString;
          Query_Ziel.ParamByName('GEBURTSMONAT_ZAHL').AsInteger := Query_Quelle.FieldByName('GEBURTSMONAT_ZAHL').AsInteger;
          Query_Ziel.ParamByName('GEBURTSJAHR').AsInteger := Query_Quelle.FieldByName('GEBURTSJAHR').AsInteger;
        Query_Ziel.ParamByName('GESCHLECHT').AsString := Query_Quelle.FieldByName('GESCHLECHT').AsString;
        Query_Ziel.ParamByName('FAMILIENSTAND').AsString := Query_Quelle.FieldByName('FAMILIENSTAND').AsString;
        Query_Ziel.ParamByName('KINDER').AsInteger := Query_Quelle.FieldByName('KINDER').AsInteger;
        Query_Ziel.ParamByName('BERUF').AsString := Query_Quelle.FieldByName('BERUF').AsString;
        Query_Ziel.ParamByName('HAUSARZT').AsString := Query_Quelle.FieldByName('HAUSARZT').AsString;
        Query_Ziel.ParamByName('GEBUEHSATZ').AsString := Query_Quelle.FieldByName('GEBUEHSATZ').AsString;
        Query_Ziel.ParamByName('KASSENNAME').AsString := Query_Quelle.FieldByName('KASSENNAME').AsString;
        Query_Ziel.ParamByName('KASSENNUMMER').AsString := Query_Quelle.FieldByName('KASSENNUMMER').AsString;
        Query_Ziel.ParamByName('VERSICHERTENNUMMER').AsString := Query_Quelle.FieldByName('VERSICHERTENNUMMER').AsString;
        Query_Ziel.ParamByName('VERISCHERTENSTATUS').AsString := Query_Quelle.FieldByName('VERISCHERTENSTATUS').AsString;
        Query_Ziel.ParamByName('GUELTIGBIS').AsDateTime := Query_Quelle.FieldByName('GUELTIGBIS').AsDateTime;
        Query_Ziel.ParamByName('BLUTGRUPPE').AsString := Query_Quelle.FieldByName('BLUTGRUPPE').AsString;
        Query_Ziel.ParamByName('AUFNAHMEDATUM').AsDateTime := Query_Quelle.FieldByName('AUFNAHMEDATUM').AsDateTime;
        Query_Ziel.ParamByName('LETZTESBEHANDLUNGSDATUM').AsDateTime := Query_Quelle.FieldByName('LETZTESBEHANDLUNGSDATUM').AsDateTime;
        Query_Ziel.ParamByName('NAECHSTERTERMIN').AsDateTime := Query_Quelle.FieldByName('NAECHSTERTERMIN').AsDateTime;
        Query_Ziel.ParamByName('UHRZEIT').AsDateTime := Query_Quelle.FieldByName('UHRZEIT').AsDateTime;
        Query_Ziel.ParamByName('TERMINGRUND').AsString := Query_Quelle.FieldByName('TERMINGRUND').AsString;
        Query_Ziel.ParamByName('KOMPRIMIERTERDRUCK').AsString := Query_Quelle.FieldByName('KOMPRIMIERTERDRUCK').AsString;
        Query_Ziel.ParamByName('LABORAUFTRAGSNUMMER').AsString := Query_Quelle.FieldByName('LABORAUFTRAGSNUMMER').AsString;
        Query_Ziel.ParamByName('BUCHEN').AsString := Query_Quelle.FieldByName('BUCHEN').AsString;
          Query_Ziel.ParamByName('KONTONUMMER').AsInteger := Query_Quelle.FieldByName('KONTONUMMER').AsInteger;
        Query_Ziel.ParamByName('ANAMNESE').AsString := Query_Quelle.FieldByName('ANAMNESE').AsString;
        Query_Ziel.ParamByName('BEMERKUNG').AsString := Query_Quelle.FieldByName('BEMERKUNG').AsString;
        Query_Ziel.ParamByName('BILD').AsString := Query_Quelle.FieldByName('BILD').AsString;
          Query_Ziel.ParamByName('DRUCKANZAHL').AsInteger := Query_Quelle.FieldByName('DRUCKANZAHL').AsInteger;
        Query_Ziel.ParamByName('KRITERIUM1').AsString := Query_Quelle.FieldByName('KRITERIUM1').AsString;
        Query_Ziel.ParamByName('KRITERIUM2').AsString := Query_Quelle.FieldByName('KRITERIUM2').AsString;
        Query_Ziel.ParamByName('KRITERIUM3').AsString := Query_Quelle.FieldByName('KRITERIUM3').AsString;
        Query_Ziel.ParamByName('BANKNAME').AsString := Query_Quelle.FieldByName('BANKNAME').AsString;
        Query_Ziel.ParamByName('BLZ').AsString := Query_Quelle.FieldByName('BLZ').AsString;
        Query_Ziel.ParamByName('BANKKONTONUMMER').AsString := Query_Quelle.FieldByName('BANKKONTONUMMER').AsString;
        Query_Ziel.ParamByName('BANKABBUCHUNG').AsString := Query_Quelle.FieldByName('BANKABBUCHUNG').AsString;
        Query_Ziel.ParamByName('ANLAGE').AsDateTime := Query_Quelle.FieldByName('ANLAGE').AsDateTime;
        Query_Ziel.ParamByName('ANLAGEBENUTZER').AsString := Query_Quelle.FieldByName('ANLAGEBENUTZER').AsString;
        Query_Ziel.ParamByName('AENDERUNG').AsDateTime := Query_Quelle.FieldByName('AENDERUNG').AsDateTime;
        Query_Ziel.ParamByName('AENDERUNGBENUTZER').AsString := Query_Quelle.FieldByName('AENDERUNGBENUTZER').AsString;
        Query_Ziel.ParamByName('BEHANDLUNGSZEITVON').AsDateTime := Query_Quelle.FieldByName('BEHANDLUNGSZEITVON').AsDateTime;
        Query_Ziel.ParamByName('BEHANDLUNGSZEITBIS').AsDateTime := Query_Quelle.FieldByName('BEHANDLUNGSZEITBIS').AsDateTime;
        Query_Ziel.ParamByName('BEHANDLUNGSTAG').AsDateTime := Query_Quelle.FieldByName('BEHANDLUNGSTAG').AsDateTime;
        Query_Ziel.ParamByName('BEHANDLUNGSZEITNEU').AsDateTime := Query_Quelle.FieldByName('BEHANDLUNGSZEITNEU').AsDateTime;
        Query_Ziel.ParamByName('BEFUND').AsString := Query_Quelle.FieldByName('BEFUND').AsString;
        Query_Ziel.ParamByName('FACHARZT').AsString := Query_Quelle.FieldByName('FACHARZT').AsString;
        Query_Ziel.ParamByName('UNTERSUCHUNG').AsString := Query_Quelle.FieldByName('UNTERSUCHUNG').AsString;
          Query_Ziel.ParamByName('ERLOESKONTO').AsInteger := Query_Quelle.FieldByName('ERLOESKONTO').AsInteger;
        Query_Ziel.ParamByName('RECHNUNGSFORMULAR').AsString := Query_Quelle.FieldByName('RECHNUNGSFORMULAR').AsString;
        Query_Ziel.ParamByName('FAMILIENANAMNESE').AsString := Query_Quelle.FieldByName('FAMILIENANAMNESE').AsString;
        Query_Ziel.ParamByName('KRANKHEITEN').AsString := Query_Quelle.FieldByName('KRANKHEITEN').AsString;
        Query_Ziel.ParamByName('THERAPIEPLAN').AsString := Query_Quelle.FieldByName('THERAPIEPLAN').AsString;
        Query_Ziel.ParamByName('SPONTANBERICHT').AsString := Query_Quelle.FieldByName('SPONTANBERICHT').AsString;
        Query_Ziel.ParamByName('GELENKTERBERICHT').AsString := Query_Quelle.FieldByName('GELENKTERBERICHT').AsString;
        Query_Ziel.ParamByName('DAUERDIAGNOSE').AsString := Query_Quelle.FieldByName('DAUERDIAGNOSE').AsString;
        Query_Ziel.ParamByName('RISIKO').AsString := Query_Quelle.FieldByName('RISIKO').AsString;
        Query_Ziel.ParamByName('RISIKO_BEMERKUNG').Value := Query_Quelle.FieldByName('RISIKO_BEMERKUNG').AsString;
          Query_Ziel.ParamByName('GEWICHT').AsFloat := Query_Quelle.FieldByName('GEWICHT').AsFloat;
          Query_Ziel.ParamByName('GROESSE').AsInteger := Query_Quelle.FieldByName('GROESSE').AsInteger;
        Query_Ziel.ParamByName('BILDEXT').AsString := Query_Quelle.FieldByName('BILDEXT').AsString;
          Query_Ziel.ParamByName('ZAHLUNGSZIEL').AsInteger := Query_Quelle.FieldByName('ZAHLUNGSZIEL').AsInteger;
          Query_Ziel.ParamByName('ID').AsInteger := Query_Quelle.FieldByName('ID').AsInteger;
        Query_Ziel.ParamByName('MEDIKATION').AsString := Query_Quelle.FieldByName('MEDIKATION').AsString;
        Query_Ziel.ParamByName('VERWANDT').AsString := Query_Quelle.FieldByName('VERWANDT').AsString;
        Query_Ziel.ParamByName('VERSICHERUNGSART').AsString := Query_Quelle.FieldByName('VERSICHERUNGSART').AsString;
        Query_Ziel.ParamByName('GEBURTSTAGSBRIEF').AsString := Query_Quelle.FieldByName('GEBURTSTAGSBRIEF').AsString;
        Query_Ziel.ParamByName('NEUJAHRSBRIEF').AsString := Query_Quelle.FieldByName('NEUJAHRSBRIEF').AsString;
        Query_Ziel.ParamByName('WEIHNACHTSBRIEF').AsString := Query_Quelle.FieldByName('WEIHNACHTSBRIEF').AsString;
        Query_Ziel.ParamByName('PATDIAGNOSE').AsString := Query_Quelle.FieldByName('PATDIAGNOSE').AsString;
        Query_Ziel.ParamByName('PATLEISTUNGEN').AsString := Query_Quelle.FieldByName('PATLEISTUNGEN').AsString;
        Query_Ziel.ParamByName('KOPFTEXT').AsString := Query_Quelle.FieldByName('KOPFTEXT').AsString;
        Query_Ziel.ParamByName('FUSSTEXT').AsString := Query_Quelle.FieldByName('FUSSTEXT').AsString;
        Query_Ziel.ParamByName('PATABSCHLUSS').AsString := Query_Quelle.FieldByName('PATABSCHLUSS').AsString;
          Query_Ziel.ParamByName('PRIVATVERSICHERERNR').AsInteger := Query_Quelle.FieldByName('PRIVATVERSICHERERNR').AsInteger;
        Query_Ziel.ParamByName('NAMENSZUSATZ').AsString := Query_Quelle.FieldByName('NAMENSZUSATZ').AsString;
         Query_Ziel.ParamByName('ZAHLUNGSBEDINGUNGBAR').AsInteger := Query_Quelle.FieldByName('ZAHLUNGSBEDINGUNGBAR').AsInteger;
          Query_Ziel.ParamByName('ZAHLUNGSBEDINGUNGUNBAR').AsInteger := Query_Quelle.FieldByName('ZAHLUNGSBEDINGUNGUNBAR').AsInteger;
          Query_Ziel.ParamByName('TEXTVORRECHNUNGSPOSITION').AsInteger := Query_Quelle.FieldByName('TEXTVORRECHNUNGSPOSITION').AsInteger;
          Query_Ziel.ParamByName('MAHNUNG1KOPF').AsInteger := Query_Quelle.FieldByName('MAHNUNG1KOPF').AsInteger;
          Query_Ziel.ParamByName('MAHNUNG1FUSS').AsInteger := Query_Quelle.FieldByName('MAHNUNG1FUSS').AsInteger;
          Query_Ziel.ParamByName('MAHNUNG2KOPF').AsInteger := Query_Quelle.FieldByName('MAHNUNG2KOPF').AsInteger;
          Query_Ziel.ParamByName('MAHNUNG2FUSS').AsInteger := Query_Quelle.FieldByName('MAHNUNG2FUSS').AsInteger;
          Query_Ziel.ParamByName('MAHNUNG3KOPF').AsInteger := Query_Quelle.FieldByName('MAHNUNG3KOPF').AsInteger;
          Query_Ziel.ParamByName('MAHNUNG3FUSS').AsInteger := Query_Quelle.FieldByName('MAHNUNG3FUSS').AsInteger;
        Query_Ziel.ParamByName('RECHNUNGPERMAIL').AsString := Query_Quelle.FieldByName('RECHNUNGPERMAIL').AsString;
        Query_Ziel.ParamByName('REZEPTFORMULAR').AsString := Query_Quelle.FieldByName('REZEPTFORMULAR').AsString;
         Query_Ziel.ParamByName('MAILBODY').AsInteger := Query_Quelle.FieldByName('MAILBODY').AsInteger;
        Query_Ziel.ParamByName('GEBURTSZEIT').AsDate := Query_Quelle.FieldByName('GEBURTSZEIT').AsDateTime;
        Query_Ziel.ParamByName('VERSICHERERAUSNP7').AsString := Query_Quelle.FieldByName('VERSICHERERAUSNP7').AsString;
        Query_Ziel.ParamByName('MAILRECHNUNGSFORMULAR').AsString := Query_Quelle.FieldByName('MAILRECHNUNGSFORMULAR').AsString;
        Query_Ziel.ParamByName('RECHNUNGENOHNEDRUCK').Value := Query_Quelle.FieldByName('RECHNUNGENOHNEDRUCK').AsString;
        Query_Ziel.ParamByName('RECHNUNGALSPDF').AsString := Query_Quelle.FieldByName('RECHNUNGALSPDF').AsString;
        Query_Ziel.ParamByName('VERSTORBEN').AsString := Query_Quelle.FieldByName('VERSTORBEN').AsString;
        Query_Ziel.ParamByName('STERBEDATUM').AsDateTime := Query_Quelle.FieldByName('STERBEDATUM').AsDateTime;
        Query_Ziel.ParamByName('SERIENBRIEFTEILNAHME').Value := Query_Quelle.FieldByName('SERIENBRIEFTEILNAHME').AsString;
        Query_Ziel.ParamByName('BIC').AsString := Query_Quelle.FieldByName('BIC').AsString;
         Query_Ziel.ParamByName('BIRTHDAYOFTHEYEAR').AsInteger := Query_Quelle.FieldByName('BIRTHDAYOFTHEYEAR').AsInteger;
        Query_Ziel.ParamByName('ZAHLUNGSART').AsString := Query_Quelle.FieldByName('ZAHLUNGSART').AsString;
        Query_Ziel.ParamByName('MANDANTENBANK').AsString := Query_Quelle.FieldByName('MANDANTENBANK').AsString;
        Query_Ziel.ParamByName('IBAN').AsString := Query_Quelle.FieldByName('IBAN').AsString;
        Query_Ziel.ParamByName('RECHNUNGALSPDFUNDDRUCK').AsString := Query_Quelle.FieldByName('RECHNUNGALSPDFUNDDRUCK').AsString;
        Query_Ziel.ParamByName('BEHANDLER').AsString := Query_Quelle.FieldByName('BEHANDLER').AsString;
         Query_Ziel.ParamByName('BUDGET').AsFloat := Query_Quelle.FieldByName('BUDGET').AsFloat;
        Query_Ziel.ExecSQL;

        qryBildAlt.next;
      end;
  end;
Kann doch nicht sein das Delphi mal so reagiert und mal anders, wobei am Code nichts verändert wird.

BadenPower 25. Apr 2015 16:12

AW: ParamByName geht und geht mal nicht
 
Wenn Du Dir sicher bist, dass der Fehler hier auftritt
Delphi-Quellcode:
Query_Ziel.ParamByName('PATIENTNR').AsInteger := qryBildAlt.FieldByName('PATIENTNR').AsInteger;
dann würde ich einmal schauen, bei welcher Umwandlung der Fehler entsteht.

Also die Anweisung splitten
Delphi-Quellcode:
lTempInteger := qryBildAlt.FieldByName('PATIENTNR').AsInteger;
Query_Ziel.ParamByName('PATIENTNR').AsInteger := lTempInteger;
Wenn der Fehler erst in der zweiten Zeile kommt, dann kannst Du Dir ja den Wert von lTempInteger im Fehlerfall in einen Try-Except-Block anzeigen lassen.

DeddyH 25. Apr 2015 16:34

AW: ParamByName geht und geht mal nicht
 
Bei dermaßen vielen Feldern in einer Tabelle würde ich mich zunächst einmal fragen, ob ich das auch wirklich ordentlich durchnormalisiert habe. Und wenn die Daten nirgends angezeigt werden (sieht auf den ersten Blick danach aus) würde ich mich als Nächstes fragen, ob ich das tatsächlich clientseitig abarbeiten möchte, oder ob eine SP nicht sinnvoller wäre. Erst wenn ich beide Fragen guten Gewissens bejahen kann, mache ich das über 2 Queries, und da würde ich nur Value von Quelle auch Value von Ziel zuweisen, ohne Typumwandlungen.

Walter Landwehr 25. Apr 2015 17:20

AW: ParamByName geht und geht mal nicht
 
Danke DeddyH, ich habe es mal ohne Typenwandlung probiert. Zur Zeit läuft die Übernahme. Kann mir jemand eine Lektüre (Buch, Anleitung) zu Erstellung von SP nennen.

Danke an alle.

mkinzler 25. Apr 2015 17:33

AW: ParamByName geht und geht mal nicht
 
Eine Normalisierung würde mehr bringen. Wie oft wird diese Funktion ausgeführt?

In diesem Fall wäre die SP im Großen Und Ganzen eine 1:! Umsetzung des Codes

So auf den 1. Blick fallen einem da schon einige Tabellen auf, in welche man diese "Monstertabelle" aufspalten könnte:

PATIENT
ADRESSE
KOMMADRESSE ( Telefon, Fax, Email, Pager, ... 1 DS pro Eintrag)
KRANKENKASSE,
ARZT
usw.

DeddyH 25. Apr 2015 17:34

AW: ParamByName geht und geht mal nicht
 
http://www.firebirdsql.org/refdocs/l...procedure.html
http://ibexpert.net/ibe/index.php?n=...resAndTriggers
http://www.destructor.de/firebird/storedproc.htm

khh 28. Apr 2015 12:43

AW: ParamByName geht und geht mal nicht
 
Zitat:

Zitat von DeddyH (Beitrag 1299271)
Bei dermaßen vielen Feldern in einer Tabelle würde ich mich zunächst einmal fragen, ob ich das auch wirklich ordentlich durchnormalisiert habe. ....

ich würde sogar auf dem zweiten Blick sagen, da ist nix mit Normalisierung :-(

DeddyH 28. Apr 2015 12:47

AW: ParamByName geht und geht mal nicht
 
Wieso, Markus hat ja schon einige Punkte genannt?

khh 28. Apr 2015 12:49

AW: ParamByName geht und geht mal nicht
 
Sorry, habe mich falsch ausgedrückt.
Ich wollte sagen, die Tabelle ist wohl überhaupt nicht normalisiert.
Eine solche wohl dringend erforderlich.

DeddyH 28. Apr 2015 12:53

AW: ParamByName geht und geht mal nicht
 
Achso. Genau das habe ich ja durch die Blume anzudeuten versucht ;)

Sir Rufo 28. Apr 2015 12:58

AW: ParamByName geht und geht mal nicht
 
Mal ganz abgesehen von Normalisierung oder der direkten Ausführung auf dem Server:

Bevor ich so einen langen Rattenschwanz programmieren müsste, würde ich mir einfach eine Schleife bauen:
Delphi-Quellcode:
while not qryBildAlt.eof do
begin
  Query_Quelle.close;
  Query_Quelle.ParamByName('PATIENTNR').AsInteger:= qryBildAlt.FieldByName('PATIENTNR').AsInteger;
  Query_Quelle.Open;

  // sag es mit drei Zeilen, statt mit n Zeilen

  for LFieldName in LFieldNames do
  begin
    Query_Ziel.ParamByName( LFieldName ).Value := Query_Quelle.FieldByName( LFieldName ).Value;
  end;

  Query_Ziel.ExecSQL;
end;

Dejan Vu 28. Apr 2015 14:12

AW: ParamByName geht und geht mal nicht
 
Stimmt. Wenn sowas nicht wäre

Delphi-Quellcode:
if Query_Quelle.FieldByName('KONTONUMMER').AsInteger = Null then
  Query_Ziel.FieldByName('KONTONUMMER').AsInteger := 1200
else
  Query_Ziel.ParamByName('KONTONUMMER').AsInteger := Query_Quelle.FieldByName('KONTONUMMER').AsInteger;

p80286 28. Apr 2015 14:26

AW: ParamByName geht und geht mal nicht
 
Und auch das kann man mit
SQL-Code:
select ...,decode(feld1,null,1200),..
abgefangen werden.

Gruß
K-H

Sir Rufo 28. Apr 2015 14:53

AW: ParamByName geht und geht mal nicht
 
Zitat:

Zitat von p80286 (Beitrag 1299551)
Und auch das kann man mit
SQL-Code:
select ...,decode(feld1,null,1200),..
abgefangen werden.

Gruß
K-H

Ebend, dafür ist ja so ein SELECT da, dass ich mir die Daten selektiere, die ich wirklich haben möchte ;)

jobo 28. Apr 2015 15:06

AW: ParamByName geht und geht mal nicht
 
Vielleicht auch
Code:
insert into .. select ..
?
Oder sind es verschiedene DB?
Ob es mit Firebird und database link geht, weiß ich nicht.

p80286 28. Apr 2015 15:23

AW: ParamByName geht und geht mal nicht
 
da Quelle und Ziel den gleichen Tabellennamen haben, scheint es sich um eine "Datenbankkopie" zu handeln:?:

Gruß
K-H

Neumann 28. Apr 2015 15:34

AW: ParamByName geht und geht mal nicht
 
Auch wenn man einige besonderen Regeln hat wie die mit der Kontonummer würde ich trotzdem mit der Schleife arbeiten. Die Sonderfälle kann man dann immer noch extra behandeln.

Die Zeile

if Query_Quelle.FieldByName('KONTONUMMER').AsInteger = Null

scheint wohl zu funktionieren, gefällt mir aber irgendwie nicht. Ich prüfe bei soetwas entweder auf isnull oder asinteger=0

Abfragen usw über mehrere Datenbanken sind mit Firebird möglich; z.B. in Executeblock-Statements.

himitsu 28. Apr 2015 15:58

AW: ParamByName geht und geht mal nicht
 
Zitat:

Zitat von Neumann (Beitrag 1299570)
scheint wohl zu funktionieren

Nein, tut es nicht, aber das hatte ich bereits genannt, inkl. Erklärung warum nicht.

Neumann 28. Apr 2015 17:30

AW: ParamByName geht und geht mal nicht
 
Es lässt sich kompilieren und ausführen, was ich eigentlich bezweifelt hatte. Ob es wirklich funktioniert, habe ich auf die Schnelle nicht geprüft.

Ich habe IBO noch nie eingesetzt; verwende eigentlich immer IBDAC und früher die IB-Komonententen. Bei beiden kann man die Insert und Update - Statments automatisch generieren lassen, geht das bei IBO nicht? Sieht mühsam aus, das alles selber zu schreiben.

himitsu 28. Apr 2015 17:36

AW: ParamByName geht und geht mal nicht
 
Wie gesagt, was dort passiert, hatte ich hier auch beschrieben. Kompilieren lässt es sich, aber es macht nicht das, was es soll.

Zitat:

Sieht mühsam aus, das alles selber zu schreiben.
Wurde auch schon vorgeschlagen.
z.B.
SQL-Code:
SELECT * FROM table LIMIT 0
(limit 0, da vorhandene Datensätze hier ja egal sind) und dann mit DataSet.Insert/Post, sowie die Felder per Schleife übertragen.

jobo 28. Apr 2015 20:28

AW: ParamByName geht und geht mal nicht
 
Zitat:

Zitat von p80286 (Beitrag 1299567)
da Quelle und Ziel den gleichen Tabellennamen haben, scheint es sich um eine "Datenbankkopie" zu handeln

Ja, klingt einleuchtend, habe ich überlesen.
Dann halt mit Stored Procedure, Execute Statement .. on external datasource.. .

Das wäre nativ, schnell, typsicher und flexibel. (Und etwas weniger Schreibkram)
Außer ein Experte hier weiß, dass es mit alten Versionen nicht geht oder remote DB.

Walter Landwehr 29. Apr 2015 13:02

AW: ParamByName geht und geht mal nicht
 
Hallo Sir Rufo,

was sind
for LFieldName in LFieldNames do
für Variablen.

himitsu 29. Apr 2015 13:15

AW: ParamByName geht und geht mal nicht
 
Das war ein Beispiel-Code.

LFieldName ist natürlich ein lokaler String. (Schleifenvariable)
LFieldNames ist z.B. ein Array oder eine StringListe mit den FeldNamen, der zu kopierenden Felder. (man könnte auch direkt über DataSet.Fields gehn)



Und wenn es schneller sein soll, dann holft man sich vor der Schleife (über alle DataRecords) die Instanzen aller nötigen TField, anstatt immer wieder neu per FieldByName suchen zu lassen.

mkinzler 29. Apr 2015 13:17

AW: ParamByName geht und geht mal nicht
 
Das ist eine Enumeration.

Ich vermute das LFieldNames eine StringListe ist, dann müsste LFieldName ein String sein.

Sir Rufo 29. Apr 2015 13:24

AW: ParamByName geht und geht mal nicht
 
Da
Delphi-Quellcode:
ParamByName
und
Delphi-Quellcode:
FieldByName
einen
Delphi-Quellcode:
string
erwarten, muss
Delphi-Quellcode:
LFieldName
irgendein Typ sein, der automatisch in einen
Delphi-Quellcode:
string
gecastet werden kann. Straight forward wäre da der Typ
Delphi-Quellcode:
string
.

Delphi-Quellcode:
LFieldNames
muss ein Typ sein, der einen Enumerator bereitstellt, der zum Typ von
Delphi-Quellcode:
LFieldName
passt. Straight forward wäre hier
Delphi-Quellcode:
TArray<string>
oder
Delphi-Quellcode:
TStringList
oder ...

mkinzler 29. Apr 2015 13:37

AW: ParamByName geht und geht mal nicht
 
Ich weiß nicht, ob es in XE2 schon geht

Delphi-Quellcode:
var ...
  fieldname: string; ...

  for fieldname in Query_Quelle.GetFieldNames do


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:01 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