<br>Hi,...
<br>
<br>(Delphi5 SP1, InterBase 5.6.0.29, Intersolve InterBase ODBC Driver IBINT13.Dll Version 03.11.1000)
<br>
<br>Ich bekomme bei einem Post-Befehl mit CursorLocation=clUseClient die folgende Fehlermeldung:
<br>"Der Datenprovider oder ein anderer Dienst gab den Status E_Fail zurück."
<br>
<br>Wenn clUseClient auf clUseServer geändert wird und das AdoDataSet nicht in Verbindung mit einem TDataSource Element ist, so wird das Insert ausgeführt.
Ist jedoch das AdoDataSet mit einem TDataSource Element verbunden, so erscheint beim Insert-Befehl der folgende Fehler:
<br>"Die Datenmenge unterstützt keine Positionsmarken, die von Multi-Datensatz-Elementen benötigt werden."
<br>
<br>Welche CursorLocation sollte man bei dem Interbase verwenden? clUseClient vermute ich oder?
<br>
<br>.
<br>.
<br>.
<br> Funktionen.ExecSQLCommand(
<br> 'CREATE TABLE Best_Temp ' +
<br> '( ' +
<br> 'ABG_ArtNr VARCHAR(6) NOT NULL, ' +
<br> 'WG VARCHAR(6), ' +
<br> 'ABG_ID Integer, ' +
<br> 'LFT_ID Integer, ' +
<br> 'ALFT_ID Integer, ' +
<br> 'LFT_Kurz VARCHAR(6), ' +
<br> 'ARTNR_LFT VARCHAR(100), ' +
<br> 'EAN_CODE VARCHAR(13), ' +
<br> 'ABG_ArtKuFo VARCHAR(30), ' +
<br> 'ABG_BEZ VARCHAR(100), ' +
<br> 'ALFT_PREIS Float, ' +
<br> 'PREIS_BASIS Integer, ' +
<br> 'SUMME Float, ' +
<br> 'ANZAHL Float, ' +
<br> 'LIEFWOCHE Integer, ' +
<br> 'PRIMARY KEY (ABG_ArtNr) ' +
<br> ');');
<br>
<br> qrytblBest_Temp.Open;
<br> qrytblBest_Temp.Insert;
<br> qrytblBest_Temp.FieldByName('ABG_ArtNr').asString := 'Test';
<br> qrytblBest_Temp.FieldByName('WG').asString := 'Test';
<br> qrytblBest_Temp.FieldByName('ABG_ID').asInteger := 0;
<br> qrytblBest_Temp.FieldByName('LFT_ID').asInteger := 0;
<br> qrytblBest_Temp.FieldByName('ALFT_ID').asInteger := 0;
<br> qrytblBest_Temp.FieldByName('LFT_Kurz').asString := 'Test';
<br> qrytblBest_Temp.FieldByName('ARTNR_LFT').asString := 'Test';
<br> qrytblBest_Temp.FieldByName('EAN_CODE').asString := 'Test';
<br> qrytblBest_Temp.FieldByName('ABG_ArtKuFo').asStrin g := 'Test';
<br> qrytblBest_Temp.FieldByName('ABG_BEZ').asString := 'Test';
<br> qrytblBest_Temp.FieldByName('ALFT_PREIS').asFloat := 0;
<br> qrytblBest_Temp.FieldByName('PREIS_BASIS').asInteg er := 0;
<br> qrytblBest_Temp.FieldByName('SUMME').asFloat := 0;
<br> qrytblBest_Temp.FieldByName('ANZAHL').asFloat := 0;
<br> qrytblBest_Temp.FieldByName('LIEFWOCHE').asInteger := 0;
<br> qrytblBest_Temp.Post;
<br>.
<br>.
<br>.
<br>Wenn ich das Insert mit dem SQL-Befehl INSERT mache, so kann ich Daten einfügen. Nur ich würde natürlich lieber den obigen Code verwenden.
<br>
<br>Ich bin etwas frustriert, da ich solchen Code schon erfolgreich bei Access oder SQL Server angewendet habe.
<br>Bin dankbar für jede Hilfe.
<br>
<br>MfG
<br>PS
<br>
<br>(Delphi5 SP1, InterBase 5.6.0.29, Intersolve InterBase ODBC Driver IBINT13.Dll Version 03.11.1000)
<br>
<br>Ich bekomme bei einem Post-Befehl mit CursorLocation=clUseClient die folgende Fehlermeldung:
<br>"Der Datenprovider oder ein anderer Dienst gab den Status E_Fail zurück."
<br>
<br>Wenn clUseClient auf clUseServer geändert wird und das AdoDataSet nicht in Verbindung mit einem TDataSource Element ist, so wird das Insert ausgeführt.
Ist jedoch das AdoDataSet mit einem TDataSource Element verbunden, so erscheint beim Insert-Befehl der folgende Fehler:
<br>"Die Datenmenge unterstützt keine Positionsmarken, die von Multi-Datensatz-Elementen benötigt werden."
<br>
<br>Welche CursorLocation sollte man bei dem Interbase verwenden? clUseClient vermute ich oder?
<br>
<br>.
<br>.
<br>.
<br> Funktionen.ExecSQLCommand(
<br> 'CREATE TABLE Best_Temp ' +
<br> '( ' +
<br> 'ABG_ArtNr VARCHAR(6) NOT NULL, ' +
<br> 'WG VARCHAR(6), ' +
<br> 'ABG_ID Integer, ' +
<br> 'LFT_ID Integer, ' +
<br> 'ALFT_ID Integer, ' +
<br> 'LFT_Kurz VARCHAR(6), ' +
<br> 'ARTNR_LFT VARCHAR(100), ' +
<br> 'EAN_CODE VARCHAR(13), ' +
<br> 'ABG_ArtKuFo VARCHAR(30), ' +
<br> 'ABG_BEZ VARCHAR(100), ' +
<br> 'ALFT_PREIS Float, ' +
<br> 'PREIS_BASIS Integer, ' +
<br> 'SUMME Float, ' +
<br> 'ANZAHL Float, ' +
<br> 'LIEFWOCHE Integer, ' +
<br> 'PRIMARY KEY (ABG_ArtNr) ' +
<br> ');');
<br>
<br> qrytblBest_Temp.Open;
<br> qrytblBest_Temp.Insert;
<br> qrytblBest_Temp.FieldByName('ABG_ArtNr').asString := 'Test';
<br> qrytblBest_Temp.FieldByName('WG').asString := 'Test';
<br> qrytblBest_Temp.FieldByName('ABG_ID').asInteger := 0;
<br> qrytblBest_Temp.FieldByName('LFT_ID').asInteger := 0;
<br> qrytblBest_Temp.FieldByName('ALFT_ID').asInteger := 0;
<br> qrytblBest_Temp.FieldByName('LFT_Kurz').asString := 'Test';
<br> qrytblBest_Temp.FieldByName('ARTNR_LFT').asString := 'Test';
<br> qrytblBest_Temp.FieldByName('EAN_CODE').asString := 'Test';
<br> qrytblBest_Temp.FieldByName('ABG_ArtKuFo').asStrin g := 'Test';
<br> qrytblBest_Temp.FieldByName('ABG_BEZ').asString := 'Test';
<br> qrytblBest_Temp.FieldByName('ALFT_PREIS').asFloat := 0;
<br> qrytblBest_Temp.FieldByName('PREIS_BASIS').asInteg er := 0;
<br> qrytblBest_Temp.FieldByName('SUMME').asFloat := 0;
<br> qrytblBest_Temp.FieldByName('ANZAHL').asFloat := 0;
<br> qrytblBest_Temp.FieldByName('LIEFWOCHE').asInteger := 0;
<br> qrytblBest_Temp.Post;
<br>.
<br>.
<br>.
<br>Wenn ich das Insert mit dem SQL-Befehl INSERT mache, so kann ich Daten einfügen. Nur ich würde natürlich lieber den obigen Code verwenden.
<br>
<br>Ich bin etwas frustriert, da ich solchen Code schon erfolgreich bei Access oder SQL Server angewendet habe.
<br>Bin dankbar für jede Hilfe.
<br>
<br>MfG
<br>PS
Comment