Complete Download SQL Server 2000 Stored Procedures XML Programming 2nd Edition Dejan Sunderic PDF All Chapters
Complete Download SQL Server 2000 Stored Procedures XML Programming 2nd Edition Dejan Sunderic PDF All Chapters
com
https://ebookname.com/product/sql-server-2000-stored-
procedures-xml-programming-2nd-edition-dejan-sunderic/
OR CLICK BUTTON
DOWNLOAD EBOOK
https://ebookname.com/product/programming-oracle-triggers-and-stored-
procedures-3rd-edition-feng-yuan/
ebookname.com
Pro SQL Server 2008 XML 1st Edition Michael Coles (Auth.)
https://ebookname.com/product/pro-sql-server-2008-xml-1st-edition-
michael-coles-auth/
ebookname.com
https://ebookname.com/product/professional-sql-server-2000-data-
warehousing-with-analysis-services-1st-edition-chris-graves/
ebookname.com
https://ebookname.com/product/against-the-wind-kat-martin/
ebookname.com
Bernard Shaw and the French 1st Edition Michel W. Pharand
https://ebookname.com/product/bernard-shaw-and-the-french-1st-edition-
michel-w-pharand/
ebookname.com
https://ebookname.com/product/new-orleans-kitchens-recipes-from-the-
big-easy-s-best-restaurants-1st-edition-stacey-meyer/
ebookname.com
https://ebookname.com/product/audio-visual-coverage-of-courts-a-
comparative-analysis-1st-edition-daniel-stepniak/
ebookname.com
https://ebookname.com/product/structures-or-why-things-don-t-fall-
down-gordon/
ebookname.com
https://ebookname.com/product/locating-health-1st-edition-erika-dyck/
ebookname.com
Consciousness in Indian Philosophy The Advaita Doctrine of
Awareness Only Routledge Hindu Studies Series 1st Edition
Sthan Timalsina
https://ebookname.com/product/consciousness-in-indian-philosophy-the-
advaita-doctrine-of-awareness-only-routledge-hindu-studies-series-1st-
edition-sthan-timalsina/
ebookname.com
SQL Server 2000
TM
Stored Procedure
& XML Programming
Second Edition
Dejan Šunderic
McGraw-Hill/Osborne
New York Chicago San Francisco
Lisbon London Madrid Mexico City Milan
New Delhi San Juan Seoul Singapore Sydney Toronto
McGraw-Hill/Osborne
2100 Powell Street, 10th Floor
Emeryville, California 94608
U.S.A.
To arrange bulk purchase discounts for sales promotions, premiums, or fund-raisers, please contact
McGraw-Hill/Osborne at the above address. For information on translations or book distributors
outside the U.S.A., please see the International Contact Information page immediately following the
index of this book.
SQL Server™ 2000 Stored Procedure & XML Programming, Second Edition
Copyright © 2003 by The McGraw-Hill Companies. All rights reserved. Printed in the United States
of America. Except as permitted under the Copyright Act of 1976, no part of this publication may be
reproduced or distributed in any form or by any means, or stored in a database or retrieval system,
without the prior written permission of publisher, with the exception that the program listings may be
entered, stored, and executed in a computer system, but they may not be reproduced for publication.
1234567890 CUS CUS 019876543
ISBN 0-07-222896-2
Information has been obtained by McGraw-Hill/Osborne from sources believed to be reliable. However, because of the possibility
of human or mechanical error by our sources, McGraw-Hill/Osborne, or others, McGraw-Hill/Osborne does not guarantee the
accuracy, adequacy, or completeness of any information and is not responsible for any errors or omissions or the results obtained
from the use of such information.
Writing a book isn’t easy, but living with someone
who is writing a book can be, at times, even harder.
I would like to thank my family for their patience,
understanding, and inspiration.
Acknowledgments
I wish to thank all the people who helped to make this book a reality,
in particular:
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669
v
This page intentionally left blank
Contents
Chapter 1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Who Should Read This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
What You Will Find in This Book . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
Stored Procedure Programming Requirements . . . . . . . . . . . . . . . . . . . 5
XML Programming Requirements . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Sample Database and Other Resources . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Sample Database Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
Purpose and Design of the Sample Database . . . . . . . . . . . . . . . . . . . . 9
Database Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
vii
viii SQL Server 2000 Stored Procedure & XML Programming
Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Character Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Unicode Character Strings . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Date and Time Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Integer Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
Approximate Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
Exact Numbers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Monetary Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
Binary Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Special Data Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Local Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
Global Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103
Table Variables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
Flow-Control Statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Comments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Statement Blocks: Begin…End . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Conditional Execution: The If Statement . . . . . . . . . . . . . . . . . . . . . . . 112
Looping: The While Statement . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Unconditional Execution: The GoTo Statement . . . . . . . . . . . . . . . . . . . . 119
Scheduled Execution: The WaitFor Statement . . . . . . . . . . . . . . . . . . . . 121
Cursors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Transact-SQL Cursors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
Cursor-Related Statements and Functions . . . . . . . . . . . . . . . . . . . . . . 126
Problems with Cursors . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
The Justified Uses of Cursors . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128
DiffGrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 628
Using DiffGrams to Insert Data . . . . . . . . . . . . . . . . . . . . . . . . . . . 629
Using DiffGrams to Update Data . . . . . . . . . . . . . . . . . . . . . . . . . . 631
Using DiffGrams to Delete Data . . . . . . . . . . . . . . . . . . . . . . . . . . . 633
Processing Multiple Records Using DiffGrams . . . . . . . . . . . . . . . . . . . . 634
DiffGrams Behind the Scene . . . . . . . . . . . . . . . . . . . . . . . . . . . . 634
Executing DiffGrams Programmatically Using SqlXmlCommand . . . . . . . . . . . 636
Executing DiffGrams Using URLs . . . . . . . . . . . . . . . . . . . . . . . . . . 636
Generating DiffGrams After DataSet Change . . . . . . . . . . . . . . . . . . . . 637
Debugging DiffGrams . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 638
SQLXML BulkLoad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 639
Executing SQLXML BulkLoad from a .NET Application . . . . . . . . . . . . . . . . 639
Error Log File . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 640
Executing BulkLoad from DTS (Using VBScript) . . . . . . . . . . . . . . . . . . . 641
Schema Generation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 642
BulkLoad Transactions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643
Data Integrity . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 643
Table Lock . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644
Using SQLXML BulkLoad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644
Mapping Schema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 644
XML Web Services . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 647
SOAP Messages and XML Web Services Architecture . . . . . . . . . . . . . . . . . 647
Using SQLXML to Create XML Web Services . . . . . . . . . . . . . . . . . . . . . 648
Creating .NET SOAP Clients . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 650
Appendix T-SQL and XML Data Types in SQL Server 2000 . . . . . . . . . . . . . . 659
Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 669
CHAPTER
Introduction
1
IN THIS CHAPTER:
Who Should Read This Book
What You Will Find in This Book
Requirements
Sample Database and Other Resources
1
2 SQL Server 2000 Stored Procedure & XML Programming
When I began working with SQL Server, reference materials relating to the
development and deployment of stored procedures were rare and not particularly
helpful. These materials described basic concepts, but the examples presented were
often trivial and not complex enough to be applied to real-world situations in which
aspects such as error handling, debugging, naming conventions, and interfaces to other
applications are critical. As the legions of application developers and development
DBAs migrate from Microsoft Access to SQL Server, and as SQL Server becomes
the leading database for mission-critical application development, the need for more
advanced work on SQL Server stored procedures becomes even more critical.
Chapter 1: Introduction 3
Requirements
To make full use of this book, you will need access to a server running one of the
following versions of SQL Server 2000 or SQL Server 2000 (64-bit):
Although MSDE is compatible with all other versions of SQL Server 2000 and
thus makes an excellent development tool in a stand-alone environment, the absence
of administrative tools such as Enterprise Manager and Query Analyzer means that
some of the information you find in this book will not be usable right away. I recommend
that you obtain some other version (such as Developer Edition or Evaluation Edition),
or at least buy a Server/Per-Seat Client Access License (CAL) that will allow you to
use administrative tools against MSDE.
XML for SQL Server Web release (SQLXML) I recommend that you
download and install at least SQLXML 3.0, Service Pack 1.
Microsoft SOAP Toolkit Download version 2, Service Pack 2 or newer.
Microsoft XML Core Services (MSXML) Use version 4, Service Pack 1 or
newer. Earlier versions were called Microsoft XML Parser.
Internet Information Services (IIS) Use version 5 or newer.
Internet Explorer Use version 5 or newer.
Several tools for source code management and database deployment Set
of T-SQL, VBScript and .NET tools for generating, managing, and deploying
code of database objects.
Sample SQLXML code Visual Studio .NET sample projects for demonstrating
use of SQLXML managed classes.
Chapter 1: Introduction 7
The subject of the Asset sample database created for this book is an asset
management system within a fictional organization. Although the database is
based on real-world experience within financial institutions, it is also applicable
in many other environments.
The main purpose of the database is to track assets. Assets are defined as equipment,
and all variations in their content, attributes, and shape are recorded as values of
properties. The Inventory table tracks location, status, leasing information, and who
is currently using each asset. To transfer an asset from one location to another, to
assign assets to a different owner or department, to request maintenance, or to request
upgrades or new assets, users of the database use orders and order items. Activities
performed to complete the order are recorded in the charge log and interdepartment
invoices are generated. There are lookup tables used to track provinces, lease
frequencies, statuses, and other details.
1. Visit www.trigonblue.com/sqlxml
2. Click the Download Sample DB link.
3. Click the Asset sample database link to start the download. When prompted,
opt to save the file to disk. Remember the location to which you saved the file.
4. Unzip the contents of the Zip file into the Data folder of the machine on
which SQL Server is installed (usually \Program Files\Microsoft SQL
Server\MSSQL\Data).
8 SQL Server 2000 Stored Procedure & XML Programming
5. Make sure that SQL Server is running. If necessary, run SQL Server Service
Manager from Programs | MS SQL Server or use the system tray icon. If
necessary, start the SQL Server service.
«Louise Desfossés.»
Cady fourra prestement la lettre dans sa poche, referma le tiroir et
courut ouvrir.
—A la bonne heure! s'écria-t-elle avec satisfaction, en apercevant le
volumineux paquet de papier fin dont le jeune homme était chargé.
L'avocat semblait avoir repris son aplomb.
—Avez-vous mis chauffer la bouillotte pour le thé? demanda-t-il en
souriant avec amabilité.
—Ma foi non, répondit Cady, nous étions trop occupées à fouiller
dans vos meubles.
Il n'attacha aucun importance à ces mots et se mit à préparer le thé,
en garçon accoutumé à faire lui-même sa cuisine matinale.
Cady le regardait avec intérêt, Marie-Annette souriait de façon
ambiguë, incertaine de ce qui se passait en elle.
Le thé et les gâteaux servis, les jeunes gens installés, Cady se récria
tout à coup:
—Vrai! pour des amoureux, vous ne parlez guère!...
Le jeune homme se rapprocha de Marie-Annette dont il enlaça la
taille.
—Vous m'intimidez, mademoiselle Cady!
La fillette lança un regard dédaigneux à leur groupe insuffisamment
esthétique.
—Pardi!... parce que vous sentez bien que je ne suis pas gourde,
poire, bouse de veau comme ma cousine!...
Marie-Annette grimaça, furieuse:
—Tu pourrais garder tes appréciations pour toi!...
Le jeune homme prononça sentimentalement:
—Elle est trop jeune pour comprendre notre amour pur, profond...
Avec un rire aigu, Cady tira de sa poche la lettre qu'elle venait de
lire, et recommença à voix haute:
«Mon cher garçon, tu nous dis à ton père et à moi...»
—Cady! protesta Marie-Annette, devenant cramoisie.
Jules avait tressailli, éperdu. Puis il bondit sur la fillette, essayant de
se saisir du papier, qu'elle lui déroba adroitement, en se sauvant au
fond de la pièce.
—Mademoiselle!... je ne supporterai pas!... Comment cette lettre
est-elle entre vos mains?...
Cady poursuivit sa lecture, plus haut, très vite, scandant les mots
impitoyablement.
L'avocat retomba sur son siège, désemparé.
—Cady! tu es odieuse! déclara Marie-Annette en sanglotant derrière
ses mains.
Le nez blême au milieu des pommettes pourpres, le jeune homme
s'écria avec énergie:
—Après tout, que prouve cette lettre?... Que j'ai des idées
sérieuses... Beaucoup de jeunes gens n'auraient vu qu'une aventure
amusante et sans lendemain où j'ai mis tout l'espoir de ma vie!...
Marie-Annette releva la tête, reconquise par cette éloquence.
—Cady? dit-elle avec émotion.
L'autre leva les épaules.
Jules continua avec chaleur, s'adressant à la fillette:
—Oui, mademoiselle, votre indiscrétion que je ne qualifierai pas,
vous a révélé que j'étais pauvre, que j'ai des parents à qui je ne
cache rien de mes pensées et de mes projets, mais cela ne prouve
point que je ne ressente pas une affection sincère pour Mlle
Serveroy.
—Nièce de Cyprien Darquet, ministre demain peut-être, et qui,
orpheline, touchera à ses vingt et un ans la fortune de son père,
remarqua Cady ironiquement. Tout cela est très juste, mon cher
monsieur, et pas mal calculé; seulement, vous oubliez qu'il faudra
sept ans avant que Marie-Annette arrive à sa majorité... Et comme le
dit votre chère maman, c'est bien long!...
Le jeune avocat sursauta.
—Sept ans?
Marie-Annette implora en rougissant.
—Cady! je t'en prie. Tais-toi!
Cady poursuivit, impitoyable:
—Sans doute, sept ans... je sais compter peut-être!... Puisqu'elle n'a
que quatorze ans!...
Jules sauta sur ses pieds.
—Quatorze ans, bon Dieu! gémit-il avec consternation. Marie-
Annette, vous disiez dix-huit!...
Cady éclata de rire.
—Ah! ça vaut le coup!... Dix-huit ans! vous ne voudriez pas, mon
empereur!... Nous sommes des gosses, faut pas faire erreur!
Marie-Annette se renversa sur son siège, trépigna et poussa une
série de cris inarticulés, croyant devoir simuler une violente crise de
nerfs.
—Oh! non, calme-toi! supplia Cady. Ça ne va pas à ton genre de
beauté. L'attaque d'hystérie, c'est trop nature!...
Jules s'effondra sur le voltaire.
—Quatorze ans! Mais alors, je suis inexcusable!
Cady lui rit au nez.
—Si elle n'a que quatorze ans, moi, j'en ai douze! Frémissez, satyre,
qui nous avez attirées dans un affreux guet-apens!... Mais as pas
peur, vieux, ça n'est pas encore à cause de nous que tu passeras en
correctionnelle!... On ne te cramponnera pas.
Marie-Annette pleurait bruyamment.
—Cady, tu avais bien besoin de te mêler de tout cela!
La fillette se rebiffa.
—Tiens, qui est-ce qui a demandé à ce que je t'accompagne, est-ce
moi?... En voilà des magnes!...
Le jeune homme se leva avec agitation.
—Mesdemoiselles, il est impossible que vous restiez ici plus
longtemps!
Cady éclata de rire.
—Des scrupules!...
Il prit la main de Marie-Annette.
—Je vous en prie, ne m'en veuillez pas... J'avais fait un rêve trop
beau!
Elle tomba sur sa poitrine.
—Alors, c'est donc fini? s'écria-t-elle avec désespoir.
Il hésita, les bras ballants, n'osant ni la repousser ni l'étreindre.
—Oui... non... c'est-à-dire... Vous me mettez dans un cruel
embarras... Ma délicatesse... votre âge... Songez donc!...
—Et ti, ti, ti! et ta, ta, ta! et poum, poum! comme je m'instruis,
comme je m'amuse! chanta Cady en trépignant d'aise.
Marie-Annette se rejeta en arrière.
—Mon âge? s'écria-t-elle aigrement. Et puis après?... En vérité, je
commence à croire que ma cousine avait raison, vous n'êtes qu'un
intrigant!
—Mademoiselle!
Cady intervint.
—Pas de colère ni de gros mots!... J'ai jamais dit que Jules n'était
pas un brave type!... C'est vrai, je vous crois un bon garçon, pas très
fort, mais sans malice... Séparons-nous sans nous fâcher... Marie-
Annette, crois-en ma vieille expérience, faut jamais se fâcher avec
les hommes, ça fait des embêtements... Ecoutez, Julot, on a admiré
vos salons, on a boulotté vos gâteaux, maintenant on va se quitter.
Le jeune homme, mû par une impulsion inattendue, s'empara de la
main de Cady:
—Si l'on se quitte bons amis, l'on peut s'embrasser?
Il se penchait, avançant les lèvres. Cady fit un grand saut en arrière,
poussant sa cousine à sa place.
—Embrassez...
Les lèvres des deux jeunes gens se rencontrèrent maladroitement.
Cady appela:
—Vite, vite! on embarque!
—Adieu!... murmura Marie-Annette d'une voix étouffée.
Et elle sortit précipitamment, suivie de Cady, qui arrêta l'avocat du
geste:
—Vous dérangez pas!... On connaît la piste.
Dans le fiacre où elles ne tardèrent pas à se jeter, Marie-Annette
fondit en larmes, s'écriant mélodramatiquement:
—Oh! Cady, tu viens de briser mon avenir!
—Tu parles, chérie!
XXIV
Comme elle le faisait toujours, depuis qu'elle était en possession de
son piano, Cady, avant de se mettre à l'étude, fit une ronde
soigneuse dans l'appartement, pour vérifier si toutes les portes
étaient bien closes, afin que nul bruit n'arrivât aux oreilles de Mme
Darquet.
Devant la chambre de Baby, un ricanement l'arrêta net.
Il y a des rires sinistres; non point des élans de saine gaîté, mais des
gloussements troublants, lugubres, s'échappant de gorges
contractées; des hilarités de cerveaux détraqués, ivres ou fous...
C'était un de ces rires de folle ou d'ivrognesse que Cady avait
entendu.
Saisie d'un pressentiment et d'une crainte, elle ouvrit brusquement
la porte et demeura un instant immobile sur le seuil, pétrifiée par le
spectacle, qu'elle comprit mal tout d'abord.
Etendue à plat sur le sol, les épaules touchant terre, l'Anglaise, les
genoux relevés, ses jupes retombées découvrant des jambes
maigres aux gros os, avait les yeux stupidement fixés au plafond et
riait d'une voix enrouée cruelle et démente...
Auprès d'elle, Jeanne, nue, enfoncée dans l'eau d'une petite
baignoire, renversait sa tête livide, tordait son buste et ses bras,
solidement maintenue par des cordes.
Les yeux hagards, elle ne pleurait pas, ne criait pas; elle se débattait
seulement, le corps singulièrement blême, avec des plaques
bleuâtres et violacées.
—Baby attachée!... Pourquoi es-tu attachée? balbutia Cady en
s'élançant vers sa sœur.
Puis elle eut un cri de terreur, ses doigts ayant effleuré le corps froid
de l'enfant, l'eau glacée de la baignoire.
Tout se brouillait dans son cerveau.
Pourquoi Jeanne était-elle attachée dans une baignoire d'eau
glacée?... Pourquoi Miss gisait-elle à terre, les vêtements en
désordre, avec un ricanement cruel et fou, et des yeux qui
semblaient ne point voir?
L'Anglaise cessa de rire et se tourna sur le côté, avec un répugnant
hoquet.
Alors, subitement, Cady comprit.
Une punition, une torture inventée par l'Anglaise ivre!...
Rapidement, à coups de ciseaux, elle coupait la corde; elle saisissait
le petit corps grêle, ruisselant, trop lourd pour ses bras, que
l'émotion affaiblissait. Elle dut le déposer sur le tapis.
—Maria!... mademoiselle Armande! Au secours! appela-t-elle avec
détresse.
Ce fut Valentin qui parut d'abord, attiré par l'accent d'angoisse de
Cady.
—Bon Dieu! est-ce qu'il y a le feu?
Maria et Clémence survinrent. Il y eut un instant de désordre,
d'incompréhension. Cady expliquait mal, bouleversée.
Baby avait entièrement perdu connaissance et son corps verdâtre,
violacé, devenait affreux.
—Elle est morte! elle est morte! Miss l'a assassinée! gémit Cady,
livide, tragique.
Comme elle s'élançait affolée au dehors, Valentin la saisit à bras-le-
corps, pâle, lui aussi.
—Voulez-vous bien vous taire!
Mlle Armande accourait au bruit, effarée.
—Mon Dieu, qu'y a-t-il?... Quel tapage! Madame va entendre!...
Clémence saisit l'enfant évanouie qu'elle porta sur son lit.
—Vite! il faut la frictionner!... Des serviettes!... Maria, courez faire
chauffer des serviettes à la cuisine!...
La femme de chambre dut enjamber le corps de la gouvernante,
toujours vautrée à terre, ricanant, bavant, hoquetant, battant le sol
du pied pour une gigue imaginaire.
—Ah! l'horreur de femme! fit-elle répugnée.
Cady, penchée sur le corps inerte de sa sœur répétait:
—Elle est morte, je vous dis! Elle est morte!... Il faut avertir maman!
—Faites pas ça, toujours, crièrent ensemble les domestiques effrayés
et menaçants.
Son chausson de laine à la main, Clémence frottait vigoureusement
le torse et les membres de l'enfant, dont l'épiderme rougissait.
—Elle revient! cria-t-elle. La voilà qui bouge!
En effet, les mâchoires contractées de la petite Jeanne se
desserraient. Ses bras se relevèrent, puis retombèrent. Soudain, ses
dents claquèrent bruyamment, et ses paupières soulevées
montrèrent des yeux qui chavirèrent, ne laissant plus voir que le
blanc.
—Oh, Dieu! elle passe! murmura Mlle Armande en se laissant tomber
sur un siège, près de se trouver mal.
—Mais non, mais non! Ça va mieux, au contraire, affirma Clémence.
Et elle recommença les frictions avec les torchons brûlants que Maria
lui apportait.
—Oh! ce qu'elle claque! fit la femme de chambre impressionnée. Ça
fait mal dans les os de l'entendre!
Cady n'y tint plus.
—Je vais chercher maman! cria-t-elle en s'élançant vers la porte avec
tant de rapidité et si inopinément que nul ne put la retenir.
Il y eut un cri de consternation.
—Nom de Dieu! hurla Valentin. On va tous nous foutre à la porte!...
Ah!... chameau d'Anglaise, va! Te ramasseras-tu, rosse? Attends un
peu voir!
Et, à coups de pied, à coups de poing, il releva la femme qui ricanait
toujours, inconsciente, sa tignasse blonde couvrant son visage, et il
la recoiffa de deux tapes.
Maria se précipita.
—Tiens, là, de l'ammoniaque, sur la cheminée! Fais-lui respirer, ça la
remet sur ses pieds de suite! Elle en a toujours une provision pour
ses cuites!
Et, avisant la baignoire, les cordes coupées demeurées au milieu de
la pièce:
—Ah! Julienne qui va voir tout ça!...
Elle emporta les liens; et, les forces décuplées par la peur d'être
surprise, elle enleva la petite baignoire, l'emporta dans la cuisine
pour la vider.
—Mademoiselle Armande, aidez-nous, rangez la chambre! jetait
Valentin qui, se pinçant le nez d'une main, fourrait impitoyablement
le flacon d'ammoniaque débouché sous les narines de l'Anglaise.
—Surtout, recommanda hâtivement Clémence, on ne sait rien, nous
autres, on n'a rien entendu! Filons!...
Et, enlevant les serviettes, rabattant d'un coup de pied un coin de
tapis relevé, elle abandonna la fillette dans son lit, fuyant dans la
cuisine, dont elle ferma la porte.
Après une dernière bourrade à l'Anglaise, avachie dans un fauteuil,
mais dont les yeux commençaient à recouvrer un regard lucide,
Valentin s'esquiva également.
—Barrez-vous, mademoiselle, conseilla-t-il à l'institutrice. Ça va
chauffer.
Demeurée seule, Mlle Armande hésita: Affronterait-elle Mme
Darquet?... Au bout du compte, elle n'avait personnellement rien à
se reprocher!... Cependant, entendant des portes s'ouvrir et des pas
précipités approcher, elle perdit courage et s'éclipsa comme les
autres.
—Ma foi, qu'elles se débrouillent! murmura-t-elle, le cœur chaviré
d'appréhension.
Dans le salon, la brusque apparition de Cady, pâle et bouleversée,
vêtue d'une robe défraîchie, chaussée de pantoufles en feutre
trouées à l'extrémité, les cheveux noués par un vieux ruban noir,
avait fait tressaillir désagréablement Mme Darquet, ainsi que les deux
dames qui prenaient le thé en causant doucement dans la pièce
tiède, close et assoupie.
Noémi Darquet se redressa, stupéfaite, fronçant les sourcils avec
contrariété.
—Qu'est-ce que c'est?
L'intrusion de sa fille aînée chez elle, en cet équipage, à cette heure,
quand il y avait des visites, était un fait sans précédent.
Très bas, suffoquée par l'effroi de la scène qui se passait là-bas, et
par l'émotion d'avoir à troubler cette froide paix maternelle—tâche
qui, subitement, lui parut au-dessus de ses forces—la fillette
murmura:
—C'est Baby, maman... Baby est très malade!
—Qu'est-ce que tu racontes? s'écria Mme Darquet, avec incrédulité et
impatience. Pourquoi viens-tu ici sans qu'on t'appelle?... Comment
Mlle Lavernière te laisse-t-elle courir ainsi fagotée?...
—Baby est évanouie... J'ai peur qu'elle soit morte, balbutia Cady qui
sentait des vertiges la gagner.