Question

Cette erreur a montré quand j'ai essayé de sélectionner sur une table vide dans MS SQL Server 2005: « BOF ou EOF est vrai, ou l'enregistrement en cours a été supprimé ». Je l'ai utilisé TADOConnection et TADODataSet dans Delphi 5 pour se connecter et récupérer des données à partir de la base de données.

  Conn := TADOConnection.Create(nil);
  DataSet := TADODataSet.Create(nil);

  Conn.ConnectionString := 'Provider=SQLOLEDB.1;Password=sa;' +
                           'Persist Security Info=True;' +
                           'User ID=user;Initial Catalog=mydb;' +
                           'Data Source=MYPC\SQLEXPRESS;' +
                           'Use Procedure for Prepare=1;' +
                           'Auto Translate=True;Packet Size=4096;' +
                           'Workstation ID=MYPC;' +
                           'Use Encryption for Data=False;' +
                           'Tag with column collation when possible=False';
  Conn.LoginPrompt := False;
  Conn.Open;

  DataSet.Connection := Conn;
  DataSet.CommandText := 'SELECT * FROM MYTABLE';
  DataSet.Open;

  DataSet.Free;
  Conn.Free;

Y at-il un moyen de vérifier si une table de base de données est vide, sans encourir une telle erreur?

Était-ce utile?

La solution

Cette erreur vient de se produire à l'origine d'une mise à jour MDAC_TYP (à 2,6 de la mémoire). Selon un ancien Borland consultatif « Ceci est un bogue dans le fournisseur SQL Server. Set CursorLocation = clUseClient pour éliminer l'erreur. "

Il y avait un patch ADOExpress disponible à partir de Borland , mais le lien doesn « t travail. Embarcadero hôte maintenant ici: ftp: //ftpd.embarcadero. com / pub / delphi / devsupport / mises à jour / ADOExpress / d5adoupdate2.exe (Merci pour le lien officiel Jeroen!)

Je recommande le téléchargement et l'installation de tous les correctifs répertoriés sur le site Embarcadero, supposant que vous pouvez les trouver.

Autres conseils

Télécharger la mise à jour ADO pour Delphi 5 ici: ftp: / /ftpd.embarcadero.com/pub/delphi/devsupport/updates/adoexpress/d5adoupdate2.exe

Assurez-vous également la mise à jour régulière installé:

Il y a plus de mises à jour (Corba, ADO d'installation d'origine) et les langues (français, allemand), mais ceux-ci devraient vous permettre de continuer.

Il a également utilisé comme un http://info.borland.com/ devsupport / delphi / download_files / zlibupdate.zip , mais pas sur les serveurs ftpd.

- jeroen

Il était longtemps Agom mais je me rappelle que ce problème dans Delphi 5 résout par la mise à jour Delphi. première version a des problèmes graves avec des composants ADO

P.S. De plus, je vois que votre code utilise pas typique création d'exécution des composants et n'utilise pas un conteneur comme module ou sous forme de données (généralement pas bon) pour le travail visuel avec des composants. Aussi parfois utile exécution des requêtes simples via adoConnection.execute. Si vous n'utilisez des composants visuels, la manipulation de l'objet Recordset ADO est la même que ADODataSet de Delphi.

Depuis que je passé une journée entière à ce sujet, voici un wrap up de ce que je l'ai fait à la fin.

Delphi 5 Installation Pro avec ADO express

  1. Désinstaller Delphi 5, répertoire d'installation a également supprimé
  2. Installer Delphi 5 Pro (je n'ai qu'une édition allemande Delphi Pro disponible)
  3. Installer Delphi 5 Mise à jour Pro (je la mise à jour allemand)
  4. Installer Delphi 5 ADO express
  5. Installer Delphi 5 ADO express Update Pack 1
  6. Installer Delphi 5 ADO express Update Pack 2

Et les liens de téléchargement (Un grand merci à nouveau Jeroen Wiert Pluimers):

Delphi 5 mises à jour Pro:

ftp://ftpd.embarcadero.com/pub /delphi/devsupport/updates/delphi5/D5ProUpdate.exe ftp://ftpd.embarcadero.com/pub/ delphi / devsupport / mises à jour / Delphi5 / allemand / d5proupdate.exe

Mise à jour ADOExpress Packs 1 et 2:

ftp://ftpd.embarcadero.com/pub /delphi/devsupport/updates/adoexpress/D5ADOUpgrade.exe ftp://ftpd.embarcadero.com/pub/delphi/ devsupport / mises à jour / ADOExpress / d5adoupdate2.exe

Et pour référence quelques captures d'écran pour construire les liens de téléchargement (sensibles à la casse):

entrer image description ici

entrer image description ici

entrer image description ici

entrer image description ici

entrer image description ici

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top