Manipulation des données
Vous pouvez écrire du code pour manipuler les données stockées dans la base de données.
- Déclarez les données à modifier à l’aide de la méthode
select. - La méthode
insertpermet d’ajouter un ou plusieurs enregistrements dans une table. - La méthode
updatepermet de modifier l’enregistrement en cours dans les champs système appropriés. - Une clause
wherevous permet d’indiquer une condition que la méthodeupdateteste lors du traitement de chaque ligne de la table. - La méthode
deletepermet de supprimer des enregistrements d’une table. Avant d’utiliser la méthodeupdateoudelete, vous devez définir les données à mettre à jour ou supprimer à l’aide de la méthodeselect. - Pour sélectionner plusieurs enregistrements ou champs, employez d’abord la méthode
select, puis extrayez le prochain enregistrement dans une table à l’aide de la méthodenext. - La méthode
while selectvous permet d’effectuer une boucle sur plusieurs enregistrements répondant à des critères spécifiques.
L’instruction select extrait ou manipule des données de la base de données à l’aide de X++. L’instruction select vous permet d’extraire un enregistrement ou champ. En outre, vous pouvez notamment extraire d’autres enregistrements à l’aide de l’instruction next ou parcourir plusieurs enregistrements à l’aide de l’instruction while select.
Par exemple, l’exemple de code suivant extrait toutes les colonnes de la première ligne de la table CustTable, puis imprime la valeur dans la colonne AccountNum de cette ligne :
CustTable custTable;
select firstonly custTable; //this is a short notation for 'select firstonly * from custTable;'
info("AccountNum: " + custTable.AccountNum);
Voici des exemples de code des méthodes insert, update et delete. Les exemples utilisent une table MyCustomerTable fictive contenant des champs fictifs pour AccountNumber et CustomerName.
méthode
insert//This will insert a new record into a sample MyCustomerTable table. The only mandatory field that is set on this table is AccountNumber. private void AddCustomer() { MyCustomerTable myCustomerTable; ttsBegin; myCustomerTable.AccountNumber = "1234"; //The new record will have the account number 1234. myCustomerTable.insert(); ttsCommit; }méthode
update//This will update the record where the AccountNumber field is set to 1234 by adding more information in the CustomerName field. private void UpdateCustomer() { MyCustomerTable myCustomerTable ttsBegin; select forUpdate myCustomerTable where myCustomerTable.AccountNumber == "1234"; //Now we will update the CustomerName field to be Sally myCustomerTable.CustomerName = "Sally"; myCustomerTable.update(); ttsCommit; }méthode
delete//This will delete the record from the MyCustomerTable table where the AccountNumber field is set to 1234. private void DeleteCustomer() { ttsBegin; while select forUpdate myCustomerTable where myCustomerTable.AccountNumber == "1234" { myCustomerTable.delete(); } ttsCommit; }