Accès à une base de données HyperFile

Résolu
meunier82
Messages postés
4
Date d'inscription
lundi 10 février 2014
Statut
Membre
Dernière intervention
11 février 2014
- 10 févr. 2014 à 13:45
sp40
Messages postés
1284
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?
A voir également:

7 réponses

sp40
Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
13
10 févr. 2014 à 15:12
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 ?
0
meunier82
Messages postés
4
Date d'inscription
lundi 10 février 2014
Statut
Membre
Dernière intervention
11 février 2014

10 févr. 2014 à 16:06
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
0
sp40
Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
13
10 févr. 2014 à 16:23
Tu peux poster un exemple de code pour ton insertion/mise à jour ou suppression ?
0
meunier82
Messages postés
4
Date d'inscription
lundi 10 février 2014
Statut
Membre
Dernière intervention
11 février 2014

10 févr. 2014 à 18:10
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.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sp40
Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
13
11 févr. 2014 à 08:57
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;


0
meunier82
Messages postés
4
Date d'inscription
lundi 10 février 2014
Statut
Membre
Dernière intervention
11 février 2014

11 févr. 2014 à 10:01
ça marche !!!

Bravo et merci beaucoup

meunier82
0
sp40
Messages postés
1284
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
13
11 févr. 2014 à 10:12
Avec plaisir ! ;)
0