|  | PRESENTATION , INFOS Valentina est un gestionnaire de base de données ultra rapide, le tout accessible via AppleScript, Réalbasic, ou directement en C++.
 Logiciels similaires : aucun (si vous en connaissez un, merci de me le signaler)
 Liens : www.paradigmasoft.com  Supprimer une fiche par SQL Lorsqu'on effectue une recherche en SQL, genre :global T_STTiers
 tell application "Valentina"
 set Base to open "Disque dur:Compta.vdb" with hide gui
 tell Base
 set T_STTiers to SQL Select "select CNomTiers, CTelFaxTiers, CAdresse1Tiers, CAdresse2Tiers, CCPTiers, CVilleTiers from TTiers where CNomTiers like \\A" & JeVeux &" no_case order by CNomTiers"
 end tell
 end tell
 le résultat se retrouve dans un ' cursor' nommé ici T_STTiers. Pour pouvoir utiliser ce cursor, il faut au préalable le définir comme une variable globale.
 Les id unique des fiches sont renumérotés, ainsi la fiche 10 d'un cursor ne correspond pas à la fiche 10 de la base mais à la 10ème fiche du cursor.
 Ainsi pour supprimer de la base cette dixième fiche de T_STTiers, il faut tout d'abord la retrouver dans la base, puis la supprimer ensuite. Ce qui nous donne :
 tell application "Valentina"
 set TableEnCours to base object "TTiers" of Base
 get record 10 of T_STTiers
 get current record of TableEnCours
 delete result
 delete T_STTiers
 end tell
 
 01/03/2000 : Désormais on peut supprimer directement une fiche en SQL suivant la structure suivante:--	Utiliser le fenêtre de l'historique des évènements pour suivre les résultats
 --
 on DeleteRecords(DB)
 tell application "Valentina"
 set Customer to base object "Customer" of DB
 get count of records in Customer -- see in the EventWindow how much records are now ?
 get count of records in base object "Invoice" of DB
 set theCursor to SQL DB Select "SELECT * FROM Customer ORDER BY name DESC"
 set theCount to count of records in theCursor
 -- Delete half of records
 repeat with i from 1 to theCount div 2
 -- While Curosr remove deleted record we each time
 -- stay on the first record and delete it.
 delete record 1 of theCursor
 end repeat
 get count of records in Customer -- see how much records are left ?
 get count of records in base object "Invoice" of DB	delete theCursor -- free memory
 end tell
 end DeleteRecords
 En résumé, il faut primo rechercher les fiches que l'on veut supprimer puis, secondo supprimer toutes les fiches du curseur (résultat de la recherche) en supprimant par la première fiche en bouclant sur le nombre de fiches du curseur.
 |  |