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

meunier82 4 Messages postés lundi 10 février 2014Date d'inscription 11 février 2014 Dernière intervention - 10 févr. 2014 à 13:45 - Dernière réponse : sp40 1293 Messages postés mardi 28 octobre 2003Date d'inscriptionContributeurStatut 3 juillet 2015 Dernière intervention
- 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

sp40 1293 Messages postés mardi 28 octobre 2003Date d'inscriptionContributeurStatut 3 juillet 2015 Dernière intervention - 10 févr. 2014 à 15:12
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
meunier82 4 Messages postés lundi 10 février 2014Date d'inscription 11 février 2014 Dernière intervention - 10 févr. 2014 à 16:06
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
sp40 1293 Messages postés mardi 28 octobre 2003Date d'inscriptionContributeurStatut 3 juillet 2015 Dernière intervention - 10 févr. 2014 à 16:23
0
Merci
Tu peux poster un exemple de code pour ton insertion/mise à jour ou suppression ?
Commenter la réponse de sp40
meunier82 4 Messages postés lundi 10 février 2014Date d'inscription 11 février 2014 Dernière intervention - 10 févr. 2014 à 18:10
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
sp40 1293 Messages postés mardi 28 octobre 2003Date d'inscriptionContributeurStatut 3 juillet 2015 Dernière intervention - 11 févr. 2014 à 08:57
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
meunier82 4 Messages postés lundi 10 février 2014Date d'inscription 11 février 2014 Dernière intervention - 11 févr. 2014 à 10:01
0
Merci
ça marche !!!

Bravo et merci beaucoup

meunier82
Commenter la réponse de meunier82
sp40 1293 Messages postés mardi 28 octobre 2003Date d'inscriptionContributeurStatut 3 juillet 2015 Dernière intervention - 11 févr. 2014 à 10:12
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.