1

次のエラーが発生し続けます

プロジェクト PAT_p.exe で例外クラス EOleException が発生し、「現在のプロバイダーは、1 回の実行で複数のレコードセットを返すことはサポートされていません」というメッセージが表示されました。プロセスが停止しました。Step または Run を使用して続行します。

データベース内のテーブルは、ID が tblDeelname の PK であり、Nommer が自動番号であり、tblAntwoorde の PK である 1 対多の関係でリンクされています。残念ながら、これは学校での実践的な評価タスクのためのものであり、関係がそこにある必要があります. 私の Delphi コードは次のとおりです。

Procedure TfrmDN.btnBDClick(Sender: TObject);
var

sNaam, sVan, sKNommer, sAntwoord, sInteger : string;

begin

 sNaam := lblNaam2.Caption;              //
 sVan := lblVan2.Caption;                //Declaring Strings
 sKNommer := lblKN2.Caption;             //
 sAntwoord := lblAntwoord1.Caption;      //
 inc(iTInskrywings);          // Global var starting at 100 which is declared on form activate
 sInteger := intostr(iTInskrywings);

 frmData.qryVGKompetisieDB.Active := false;    // query is on another form
 frmData.qryVGKompetisieDB.SQL.Text := 'insert into tblDeelnemers (ID, Naam, Van, Kontaknommer) VALUES ("'+sInteger+'", "'+sNaam+'", "'+sVan+'","'+sKNommer+'")'; // Inserting Data into first Table
 frmData.qryVGKompetisieDB.ExecSQL;
 frmData.qryVGKompetisieDB.SQL.Text := 'insert into tblAntwoorde (ID, Antwoord) VALUES ("'+sInteger+'", "'+sAntwoord+'")';   // Inserting Data into second Table
 frmData.qryVGKompetisieDB.ExecSQL;
 frmData.qryVGKompetisieDB.Active := true;

end;

テーブルに入力されるすべての情報は編集ボックスから取得され、ID はグローバル変数です (そこにある必要がある評価も別として)。この 1 つの魔女が sql で整数値を挿入することを望まない前に別のエラーが発生したため、整数を文字列にしました。

助けてください!!!

4

1 に答える 1

2

@TLama のおかげで、最後の実行の後に select ステートメントを追加するだけで愚かな間違いを修正しました。

Procedure TfrmDN.btnBDClick(Sender: TObject);
var

sNaam, sVan, sKNommer, sAntwoord, sInteger : string;

begin

 sNaam := lblNaam2.Caption;              
 sVan := lblVan2.Caption;                
 sKNommer := lblKN2.Caption;             
 sAntwoord := lblAntwoord1.Caption;      
 inc(iTInskrywings);          
 sInteger := intostr(iTInskrywings);

 frmData.qryVGKompetisieDB.Active := false;    
 frmData.qryVGKompetisieDB.SQL.Text := 'insert into tblDeelnemers (ID, Naam, Van, Kontaknommer) VALUES ("'+sInteger+'", "'+sNaam+'", "'+sVan+'","'+sKNommer+'")'; 
 frmData.qryVGKompetisieDB.ExecSQL;
 frmData.qryVGKompetisieDB.SQL.Text := 'insert into tblAntwoorde (ID, Antwoord) VALUES ("'+sInteger+'", "'+sAntwoord+'")';   
 frmData.qryVGKompetisieDB.ExecSQL;
 frmData.qryVGKompetisieDB.SQL.Text := 'SELECT * FROM tblDeelnemers'; // The select statement needs to be there so that the dbgrid can display properly  
 frmData.qryVGKompetisieDB.Active := true;

end;
于 2013-09-09T01:20:57.057 に答える