Der folgende Pseudocode bietet einen Überblick über die Abfolge, in der Download-Ereignisse und die gleichnamigen Skripten aufgerufen werden.
Diese Ereignisse finden Sie an der Download-Stelle im vollständigen Ereignismodell ausgeführt (siehe Überblick über MobiLink-Ereignisse).
------------------------------------------------------ prepare_for_download ------------------------------------------------------ modify_last_download_timestamp fetch the next download timestamp from consolidated prepare_for_download if( modify_last_download_timestamp script is defined or prepare_for_download script is defined ) { COMMIT } ------------------------------------------------------ download ------------------------------------------------------ begin_download // Connection event. for each table being synchronized { begin_download // Table event. } handle_DownloadData for each table being synchronized { begin_download_deletes for each row in download_delete_cursor { if( all primary key columns are NULL ) { send TRUNCATE to remote } else { send DELETE to remote } } end_download_deletes begin_download_rows for each row in download_cursor { send INSERT ON EXISTING UPDATE to remote } end_download_rows } modify_next_last_download_timestamp for each table being synchronized { if( begin_download table script is called ) { end_download // Table event } } if( begin_download connect script is called ) { end_download // Connection event } for each table being synchronized { download_statistics // Table event. } download_statistics // Connection event. COMMIT |
Wenn eine Bestätigung erwartet wird und keine Bestätigung der Downloads vom Client eintrifft, wird die komplette Downloadtransaktion in der konsolidierten Datenbank zurückgesetzt.
Weitere Hinweise zu entfernten SQL Anywhere-Datenbanken finden Sie unter Erweiterte Option SendDownloadACK (sa). Weitere Hinweise zu entfernten UltraLite-Datenbanken finden Sie unter Synchronisationsparameter Send Download Acknowledgement.
Der Download-Datenstrom unterscheidet nicht zwischen Einfügungen und Änderungen. Das Skript, das dem Ereignis download_cursor zugeordnet ist, ist eine SELECT-Anweisung, die die Zeilen für den Download festlegt. Der Client ermittelt, ob die Zeile vorhanden ist, und führt dann den entsprechenden Einfüge- oder Aktualisierungsvorgang aus.
Am Ende des Download-Prozesses löscht der Client automatisch Zeilen, die die referenzielle Integrität verletzen.
Weitere Hinweise finden Sie unter Referenzielle Integrität und Synchronisation.
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |