Bonjour
MSSQL Server DELPHI7 Comment enregistrer BLOB Memo
MSSQL Server 2008 DELPHI7 Windows XP SP3
Composants utilisés : ADOConnection1 ADOQuery1 DataSource1 DBGrid1 DBMemo1
La base et la table ont été créées avec SQL Server 2008 Management Studio
Liste des champs : dans le fichier joint Définition table base.doc
La clé primaire ID de type integer est autoincrémentée
Le champ memo est déclaré en varchar(MAX) pour faire face à des tailles importantes
Le champ memo y est saisi avec une seule ligne de texte
1)
L'application delphi montre bien dans la DBGrid les enregistrements réalisés avec MS SQL Management Studio. Le DBMemo montre la 1ère ligne du Mémo associé à l'enregistrement.
2)
L'application delphi insère sans problèmes de nouveaux enregistrements (string et integer).
Le memo est détecté en ftMemo sur demande du type de données de sa colonne :
3)Le problème (après avoir consulté FAQ et Net)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 ChnNom:=DbGrid1.Columns.Items[NoColonne].DisplayName; // Nom de la colonne = nom du champ TypeDeChamp:=GetFieldType(DbGrid1,ChnNom); // type du champ : string, integer .... ADOQuery1.Active:=false; //Valeurs affectées : (le champ autoincrémenté est volontairement absent) Chn:='INSERT INTO BTCM (DateDuTest,TypeDEquipement,NoDeSerie,Resultat,Bilan,NoOF,DateDeFabrication,Client,FichierDesMesures) VALUES(DEFAULT,'BTCM','212',DEFAULT,'HS','999888','OCT 13','BUS','KIKI')' ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add(Chn); ADOQuery1.ExecSQL;
Comment enregistrer un memo de texte à partir d'un fichier texte ou d'un Memo créé sur la fiche en utilisant un ADOQuery ?
Le Memo Resultat doit-il être mis en paramètres par :Resultat
VALUES(DEFAULT,'BTCM','212',:Resultat,'HS','999888','OCT 13','BUS','KIKI')'
et quelque chose du type : ADOQuery1.Parameters.ParamByName('Resultat').LoadFromFile(OpenDialog1.Filename,ftMemo);
Mais où placer cette ligne de code
Faut-il définir le nom du paramètre ou de tous les paramètres à la conception ? Peut-on le faire à l'exécution ?
Y a t-il une méthode plus simple ?
4)Si le mémo a eté enregistré entièrement, apparaît-il directement dans le DBMemo lors d'une opération SELECT FROM
Merci
Partager