J'ai essayé ceci:Comment puis-je obtenir le nombre d'enregistrements supprimés?
function TMyClass.removeRecords(...) : integer;
var
aC : TADOCommand;
aRS : _RecordSet;
begin
aC := createADOCommand;
try
aC.Connection := fConnection;
aC.commandText := getDeleteModelSQLCommand(...);
aRS := aC.Execute;
{$ifdef debug_AlwaysOne}
result := 1;
{$else}
result := aRS.RecordCount;
{$endif}
finally
releaseADOCommand(aC);
end;
end;
Il fonctionne correctement avec le debug_AlwaysOne
conditionnelle définie.
Cependant, à la ligne qui lit le RecordCount
, il déclenche une erreur:
Operation is not allowed when the object is closed
Est-il possible d'obtenir le nombre d'enregistrements supprimés? Je sais que je peux exécuter une requête agrégée avant la suppression. Mais puis-je le faire sans un autre appel de commande SQL?
Si je l'appelle avec un OleVariant initialisés (vous l'avez nommé pour EmptyParam), il dit: "L'objet du paramètre est mal défini, des informations incorrectes ou incomplètes ont été fournies." Que dois-je faire avec l'OLEVariant avant l'appel de méthode? –
Que voulez-vous dire que vous l'appeliez avec un OLEVariant non-initialisé? EmptyParam est une fonction qui existe déjà dans l'unité System.Variants, qui représente un paramètre facultatif inutilisé. – Fero
Je viens de "créer" une variable locale de type OLEVariant. –