Accès à une base de données HyperFile [Résolu]

Messages postés
4
Date d'inscription
lundi 10 février 2014
Dernière intervention
11 février 2014
- - Dernière réponse : sp40
Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
- 11 févr. 2014 à 10:12
Bonjour,

Je souhaite accéder en lecture/écriture à une base de données HyperFileSQL (Windev) à l'aide d'une application Delphi 7. J'ai installé le driver ODBC HyperFile.
J'accède sans problème en lecture, par contre il est impossible d'accéder en écriture: plantage systématique,violation d'accès.le site Windev dit pourtant que le driver ODBC HyperfileSQL permet l'accès en lecture et écriture.
Quelqu'un a t-il déjà rencontré ce problème?
Afficher la suite 

Votre réponse

7 réponses

Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
0
Merci
ouiiiiii, c'est super lourd...
Par contre ça remonte... Je vais essayer de me rappeler comment j'avais feinté...
Quels composants utilises tu pour tes écritures ?
Commenter la réponse de sp40
Messages postés
4
Date d'inscription
lundi 10 février 2014
Dernière intervention
11 février 2014
0
Merci
Bonjour,
Je me sens moins seul.

J'utilise le BDE (je sais, c'est pas bien, mais c'est une vieille appli)
avec un TQuery et un TUpdateSQL
Commenter la réponse de meunier82
Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
0
Merci
Tu peux poster un exemple de code pour ton insertion/mise à jour ou suppression ?
Commenter la réponse de sp40
Messages postés
4
Date d'inscription
lundi 10 février 2014
Dernière intervention
11 février 2014
0
Merci
Voici un exemple.
Le premier bouton permet de lire les champs Nom et Prénom de la table Dossiers de la base BHyperfile.
Le second bouton devrait permettre de changer le prénom de Dupond.

unit Essai_ecriture;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids, DB, DBTables, StdCtrls;

type
TForm1 = class(TForm)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
BLire: TButton;
BHyperFile: TDatabase;
BEcrire: TButton;
UpdateSQL1: TUpdateSQL;
Query1: TQuery;
Query1Nom: TStringField;
Query1Prenom: TStringField;
procedure BLireClick(Sender: TObject);
procedure BEcrireClick(Sender: TObject);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BLireClick(Sender: TObject);
begin
With Query1 Do
begin
Close;
SQL.Clear;
SQL.Add('Select Nom,Prenom from DOSSIERS');
Open;
end;
end;

procedure TForm1.BEcrireClick(Sender: TObject);
var commande,NomPatient,Prenompatient:string;
begin
With Query1 Do
begin
If Locate('Nom','DUPOND',[]) then
begin
edit;
Query1Prenom.Value:='Jean';
BHyperfile.StartTransaction;
try
ApplyUpdates;
BHyperfile.Commit;
except
BHyperfile.Rollback;
raise;
end;
CommitUpdates;
end;
end;
end;


end.
Commenter la réponse de meunier82
Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
0
Merci
J'ai retrouvé le code que j'avais fait pour écrire dans ces fichues bases...
Apparemment, avec un TQuery créé dynamiquement, j'y parvenais. Essaie avec ça :

With TQuery.Create(nil) do begin
  DatabaseName := [Nom de ton alias HF dans le BDE];
  SQL.Add('Update MATABLE');
  SQL.Add('Set Prenom = '''Jean'''');
  SQL.Add('Where Nom = '''DUPOND'''');
  ExecSQL;
  Free;
end;


Commenter la réponse de sp40
Messages postés
4
Date d'inscription
lundi 10 février 2014
Dernière intervention
11 février 2014
0
Merci
ça marche !!!

Bravo et merci beaucoup

meunier82
Commenter la réponse de meunier82
Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
0
Merci
Avec plaisir ! ;)
Commenter la réponse de sp40

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.