# Copyright (C) 2001-2018, Python Software Foundation # For licence information, see README file. # msgid "" msgstr "" "Project-Id-Version: Python 3\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2020-10-01 16:00+0200\n" "PO-Revision-Date: 2019-03-26 15:55+0100\n" "Last-Translator: Julien Palard \n" "Language-Team: FRENCH \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "X-Generator: Poedit 2.0.6\n" #: library/sqlite3.rst:2 msgid ":mod:`sqlite3` --- DB-API 2.0 interface for SQLite databases" msgstr ":mod:`sqlite3` — Interface DB-API 2.0 pour bases de données SQLite" #: library/sqlite3.rst:9 msgid "**Source code:** :source:`Lib/sqlite3/`" msgstr "**Code source :** :source:`Lib/sqlite3/`" #: library/sqlite3.rst:13 msgid "" "SQLite is a C library that provides a lightweight disk-based database that " "doesn't require a separate server process and allows accessing the database " "using a nonstandard variant of the SQL query language. Some applications can " "use SQLite for internal data storage. It's also possible to prototype an " "application using SQLite and then port the code to a larger database such as " "PostgreSQL or Oracle." msgstr "" "SQLite est une bibliothèque C qui fournit une base de données légère sur " "disque ne nécessitant pas de processus serveur et qui utilise une variante " "(non standard) du langage de requête SQL pour accéder aux données. Certaines " "applications peuvent utiliser SQLite pour le stockage de données internes. " "Il est également possible de créer une application prototype utilisant " "SQLite, puis de modifier le code pour utiliser une base de données plus " "robuste telle que PostgreSQL ou Oracle." #: library/sqlite3.rst:20 msgid "" "The sqlite3 module was written by Gerhard Häring. It provides a SQL " "interface compliant with the DB-API 2.0 specification described by :pep:" "`249`." msgstr "" "Le module *sqlite3* a été écrit par Gerhard Häring. Il fournit une " "interface SQL conforme à la spécification DB-API 2.0 décrite par :pep:`249`." #: library/sqlite3.rst:23 msgid "" "To use the module, you must first create a :class:`Connection` object that " "represents the database. Here the data will be stored in the :file:`example." "db` file::" msgstr "" "Pour utiliser le module, vous devez d’abord créer une :class:`Connection` " "qui représente la base de données. Dans cet exemple, les données sont " "stockées dans le fichier :file:`example.db` ::" #: library/sqlite3.rst:30 msgid "" "You can also supply the special name ``:memory:`` to create a database in " "RAM." msgstr "" "Vous pouvez également fournir le nom spécial ``:memory:`` pour créer une " "base de données dans la mémoire vive." #: library/sqlite3.rst:32 msgid "" "Once you have a :class:`Connection`, you can create a :class:`Cursor` " "object and call its :meth:`~Cursor.execute` method to perform SQL commands::" msgstr "" "Une fois que vous avez une instance de :class:`Connection`, vous pouvez " "créer un objet :class:`Cursor` et appeler sa méthode :meth:`~Cursor.execute` " "pour exécuter les commandes SQL ::" #: library/sqlite3.rst:51 msgid "" "The data you've saved is persistent and is available in subsequent sessions::" msgstr "" "Les données que vous avez sauvegardées sont persistantes et disponibles dans " "les sessions suivantes ::" #: library/sqlite3.rst:57 msgid "" "Usually your SQL operations will need to use values from Python variables. " "You shouldn't assemble your query using Python's string operations because " "doing so is insecure; it makes your program vulnerable to an SQL injection " "attack (see https://xkcd.com/327/ for humorous example of what can go wrong)." msgstr "" "Habituellement, vos opérations SQL utilisent les valeurs de variables " "Python. Vous ne devez pas assembler votre requête à l'aide des opérations " "sur les chaînes de caractères de Python, car cela n'est pas sûr. Cela rend " "votre programme vulnérable à une attaque par injection SQL (voir https://" "xkcd.com/327/ pour un exemple amusant de ce qui peut mal tourner)." #: library/sqlite3.rst:62 msgid "" "Instead, use the DB-API's parameter substitution. Put ``?`` as a " "placeholder wherever you want to use a value, and then provide a tuple of " "values as the second argument to the cursor's :meth:`~Cursor.execute` " "method. (Other database modules may use a different placeholder, such as ``" "%s`` or ``:1``.) For example::" msgstr "" "À la place, utilisez la capacité DB-API de substitution des paramètres. " "Placez un ``?`` comme indicateur partout où vous voulez utiliser une valeur, " "puis fournissez un *n*-uplet de valeurs comme second argument de la méthode :" "meth:`~Cursor.execute`. D'autres modules de base de données peuvent utiliser " "un espace réservé différent, tel que ``%s`` ou ``:1``. Par exemple ::" #: library/sqlite3.rst:84 msgid "" "To retrieve data after executing a SELECT statement, you can either treat " "the cursor as an :term:`iterator`, call the cursor's :meth:`~Cursor." "fetchone` method to retrieve a single matching row, or call :meth:`~Cursor." "fetchall` to get a list of the matching rows." msgstr "" "Pour récupérer des données après avoir exécuté une instruction *SELECT*, " "vous pouvez considérer le curseur comme un :term:`itérateur `, " "appeler la méthode du curseur :meth:`~Cursor.fetchone` pour récupérer une " "seule ligne correspondante ou appeler :meth:`~Cursor.fetchall` pour obtenir " "une liste des lignes correspondantes." #: library/sqlite3.rst:89 msgid "This example uses the iterator form::" msgstr "Cet exemple utilise la forme itérateur ::" #: library/sqlite3.rst:104 msgid "https://github.com/ghaering/pysqlite" msgstr "https://github.com/ghaering/pysqlite" #: library/sqlite3.rst:103 msgid "" "The pysqlite web page -- sqlite3 is developed externally under the name " "\"pysqlite\"." msgstr "" "La page web de *pysqlite* — *sqlite3* est développée sur un site tiers sous " "le nom *pysqlite*." #: library/sqlite3.rst:108 msgid "https://www.sqlite.org" msgstr "https://www.sqlite.org" #: library/sqlite3.rst:107 msgid "" "The SQLite web page; the documentation describes the syntax and the " "available data types for the supported SQL dialect." msgstr "" "Dans la page Web de SQLite, la documentation décrit la syntaxe et les types " "de données disponibles qui sont pris en charge par cette variante SQL." #: library/sqlite3.rst:111 msgid "https://www.w3schools.com/sql/" msgstr "https://www.w3schools.com/sql/" #: library/sqlite3.rst:111 msgid "Tutorial, reference and examples for learning SQL syntax." msgstr "Tutoriel, référence et exemples pour apprendre la syntaxe SQL." #: library/sqlite3.rst:113 msgid ":pep:`249` - Database API Specification 2.0" msgstr ":pep:`249` — Spécifications de l'API 2.0 pour la base de données" #: library/sqlite3.rst:114 msgid "PEP written by Marc-André Lemburg." msgstr "PEP écrite par Marc-André Lemburg." #: library/sqlite3.rst:120 msgid "Module functions and constants" msgstr "Fonctions et constantes du module" #: library/sqlite3.rst:125 msgid "" "The version number of this module, as a string. This is not the version of " "the SQLite library." msgstr "" "Le numéro de version de ce module, sous forme de chaîne. Ce n'est pas la " "version de la bibliothèque SQLite." #: library/sqlite3.rst:131 msgid "" "The version number of this module, as a tuple of integers. This is not the " "version of the SQLite library." msgstr "" "Le numéro de version de ce module, sous forme d'un *n*-uplet d'entiers. Ce " "n'est pas la version de la bibliothèque SQLite." #: library/sqlite3.rst:137 msgid "The version number of the run-time SQLite library, as a string." msgstr "" "Le numéro de version de la bibliothèque d'exécution SQLite, sous forme de " "chaîne." #: library/sqlite3.rst:142 msgid "" "The version number of the run-time SQLite library, as a tuple of integers." msgstr "" "Le numéro de version de la bibliothèque d'exécution SQLite, sous forme " "d'entier." #: library/sqlite3.rst:160 msgid "" "This constant is meant to be used with the *detect_types* parameter of the :" "func:`connect` function." msgstr "" "Cette constante est destinée à être utilisée avec le paramètre " "*detect_types* de la fonction :func:`connect`." #: library/sqlite3.rst:150 msgid "" "Setting it makes the :mod:`sqlite3` module parse the declared type for each " "column it returns. It will parse out the first word of the declared type, " "i. e. for \"integer primary key\", it will parse out \"integer\", or for " "\"number(10)\" it will parse out \"number\". Then for that column, it will " "look into the converters dictionary and use the converter function " "registered for that type there." msgstr "" "Si elle est définie, le module :mod:`sqlite3` analyse le type de donnée " "déclarée pour chaque colonne. Il déduit le type du premier mot de la " "déclaration, par exemple de *integer primary key* il gardera *integer*, ou " "de *number(10)* il gardera *number*. Ensuite, pour cette colonne, il " "utilisera une fonction de conversion du dictionnaire des convertisseurs." #: library/sqlite3.rst:163 #, fuzzy msgid "" "Setting this makes the SQLite interface parse the column name for each " "column it returns. It will look for a string formed [mytype] in there, and " "then decide that 'mytype' is the type of the column. It will try to find an " "entry of 'mytype' in the converters dictionary and then use the converter " "function found there to return the value. The column name found in :attr:" "`Cursor.description` does not include the type, i. e. if you use something " "like ``'as \"Expiration date [datetime]\"'`` in your SQL, then we will parse " "out everything until the first ``'['`` for the column name and strip the " "preceeding space: the column name would simply be \"Expiration date\"." msgstr "" "Permet à l’interface SQLite d'analyser le nom pour chaque colonne. Il y " "cherchera une chaîne comme ``[mytype]`` indiquant que la colonne est de type " "``mytype``. Il essaiera de trouver une entrée *mytype* dans le dictionnaire, " "puis utilisera la fonction de conversion qui s'y trouve pour renvoyer la " "valeur. Le nom de colonne donnée à :attr:`Cursor.description` n'est alors " "que le premier mot du nom de la colonne, par exemple si vous utilisez ``'as " "\\\"x [datetime]\\\"'`` dans votre code SQL, le nom de la colonne sera " "simplement *x*." #: library/sqlite3.rst:176 msgid "" "Opens a connection to the SQLite database file *database*. By default " "returns a :class:`Connection` object, unless a custom *factory* is given." msgstr "" "Ouvre une connexion à la base de données SQLite *database*. Par défaut, " "cette commande renvoie un objet :class:`Connection`, sauf si *factory* est " "donné." #: library/sqlite3.rst:179 msgid "" "*database* is a :term:`path-like object` giving the pathname (absolute or " "relative to the current working directory) of the database file to be " "opened. You can use ``\":memory:\"`` to open a database connection to a " "database that resides in RAM instead of on disk." msgstr "" #: library/sqlite3.rst:184 msgid "" "When a database is accessed by multiple connections, and one of the " "processes modifies the database, the SQLite database is locked until that " "transaction is committed. The *timeout* parameter specifies how long the " "connection should wait for the lock to go away until raising an exception. " "The default for the timeout parameter is 5.0 (five seconds)." msgstr "" #: library/sqlite3.rst:190 msgid "" "For the *isolation_level* parameter, please see the :attr:`~Connection." "isolation_level` property of :class:`Connection` objects." msgstr "" #: library/sqlite3.rst:193 msgid "" "SQLite natively supports only the types TEXT, INTEGER, REAL, BLOB and NULL. " "If you want to use other types you must add support for them yourself. The " "*detect_types* parameter and the using custom **converters** registered with " "the module-level :func:`register_converter` function allow you to easily do " "that." msgstr "" #: library/sqlite3.rst:198 msgid "" "*detect_types* defaults to 0 (i. e. off, no type detection), you can set it " "to any combination of :const:`PARSE_DECLTYPES` and :const:`PARSE_COLNAMES` " "to turn type detection on." msgstr "" #: library/sqlite3.rst:202 msgid "" "By default, *check_same_thread* is :const:`True` and only the creating " "thread may use the connection. If set :const:`False`, the returned " "connection may be shared across multiple threads. When using multiple " "threads with the same connection writing operations should be serialized by " "the user to avoid data corruption." msgstr "" #: library/sqlite3.rst:207 msgid "" "By default, the :mod:`sqlite3` module uses its :class:`Connection` class for " "the connect call. You can, however, subclass the :class:`Connection` class " "and make :func:`connect` use your class instead by providing your class for " "the *factory* parameter." msgstr "" #: library/sqlite3.rst:212 msgid "Consult the section :ref:`sqlite3-types` of this manual for details." msgstr "" #: library/sqlite3.rst:214 msgid "" "The :mod:`sqlite3` module internally uses a statement cache to avoid SQL " "parsing overhead. If you want to explicitly set the number of statements " "that are cached for the connection, you can set the *cached_statements* " "parameter. The currently implemented default is to cache 100 statements." msgstr "" #: library/sqlite3.rst:219 msgid "" "If *uri* is true, *database* is interpreted as a URI. This allows you to " "specify options. For example, to open a database in read-only mode you can " "use::" msgstr "" #: library/sqlite3.rst:225 msgid "" "More information about this feature, including a list of recognized options, " "can be found in the `SQLite URI documentation `_." msgstr "" #: library/sqlite3.rst:229 msgid "" "Raises an :ref:`auditing event ` ``sqlite3.connect`` with argument " "``database``." msgstr "" #: library/sqlite3.rst:230 msgid "Added the *uri* parameter." msgstr "" #: library/sqlite3.rst:233 msgid "" "*database* can now also be a :term:`path-like object`, not only a string." msgstr "" #: library/sqlite3.rst:239 msgid "" "Registers a callable to convert a bytestring from the database into a custom " "Python type. The callable will be invoked for all database values that are " "of the type *typename*. Confer the parameter *detect_types* of the :func:" "`connect` function for how the type detection works. Note that *typename* " "and the name of the type in your query are matched in case-insensitive " "manner." msgstr "" #: library/sqlite3.rst:248 msgid "" "Registers a callable to convert the custom Python type *type* into one of " "SQLite's supported types. The callable *callable* accepts as single " "parameter the Python value, and must return a value of the following types: " "int, float, str or bytes." msgstr "" #: library/sqlite3.rst:256 msgid "" "Returns :const:`True` if the string *sql* contains one or more complete SQL " "statements terminated by semicolons. It does not verify that the SQL is " "syntactically correct, only that there are no unclosed string literals and " "the statement is terminated by a semicolon." msgstr "" #: library/sqlite3.rst:261 msgid "" "This can be used to build a shell for SQLite, as in the following example:" msgstr "" #: library/sqlite3.rst:269 msgid "" "By default you will not get any tracebacks in user-defined functions, " "aggregates, converters, authorizer callbacks etc. If you want to debug them, " "you can call this function with *flag* set to ``True``. Afterwards, you will " "get tracebacks from callbacks on ``sys.stderr``. Use :const:`False` to " "disable the feature again." msgstr "" #: library/sqlite3.rst:279 msgid "Connection Objects" msgstr "Objets de connexions" #: library/sqlite3.rst:283 msgid "A SQLite database connection has the following attributes and methods:" msgstr "" #: library/sqlite3.rst:287 msgid "" "Get or set the current default isolation level. :const:`None` for autocommit " "mode or one of \"DEFERRED\", \"IMMEDIATE\" or \"EXCLUSIVE\". See section :" "ref:`sqlite3-controlling-transactions` for a more detailed explanation." msgstr "" #: library/sqlite3.rst:293 msgid "" ":const:`True` if a transaction is active (there are uncommitted changes), :" "const:`False` otherwise. Read-only attribute." msgstr "" #: library/sqlite3.rst:300 msgid "" "The cursor method accepts a single optional parameter *factory*. If " "supplied, this must be a callable returning an instance of :class:`Cursor` " "or its subclasses." msgstr "" #: library/sqlite3.rst:306 msgid "" "This method commits the current transaction. If you don't call this method, " "anything you did since the last call to ``commit()`` is not visible from " "other database connections. If you wonder why you don't see the data you've " "written to the database, please check you didn't forget to call this method." msgstr "" #: library/sqlite3.rst:313 msgid "" "This method rolls back any changes to the database since the last call to :" "meth:`commit`." msgstr "" #: library/sqlite3.rst:318 msgid "" "This closes the database connection. Note that this does not automatically " "call :meth:`commit`. If you just close your database connection without " "calling :meth:`commit` first, your changes will be lost!" msgstr "" #: library/sqlite3.rst:324 msgid "" "This is a nonstandard shortcut that creates a cursor object by calling the :" "meth:`~Connection.cursor` method, calls the cursor's :meth:`~Cursor.execute` " "method with the *parameters* given, and returns the cursor." msgstr "" #: library/sqlite3.rst:331 msgid "" "This is a nonstandard shortcut that creates a cursor object by calling the :" "meth:`~Connection.cursor` method, calls the cursor's :meth:`~Cursor." "executemany` method with the *parameters* given, and returns the cursor." msgstr "" #: library/sqlite3.rst:338 msgid "" "This is a nonstandard shortcut that creates a cursor object by calling the :" "meth:`~Connection.cursor` method, calls the cursor's :meth:`~Cursor." "executescript` method with the given *sql_script*, and returns the cursor." msgstr "" #: library/sqlite3.rst:345 msgid "" "Creates a user-defined function that you can later use from within SQL " "statements under the function name *name*. *num_params* is the number of " "parameters the function accepts (if *num_params* is -1, the function may " "take any number of arguments), and *func* is a Python callable that is " "called as the SQL function. If *deterministic* is true, the created function " "is marked as `deterministic `_, which " "allows SQLite to perform additional optimizations. This flag is supported by " "SQLite 3.8.3 or higher, :exc:`NotSupportedError` will be raised if used with " "older versions." msgstr "" #: library/sqlite3.rst:355 msgid "" "The function can return any of the types supported by SQLite: bytes, str, " "int, float and ``None``." msgstr "" #: library/sqlite3.rst:358 msgid "The *deterministic* parameter was added." msgstr "" #: library/sqlite3.rst:378 library/sqlite3.rst:649 msgid "Example:" msgstr "Exemple :" #: library/sqlite3.rst:368 msgid "Creates a user-defined aggregate function." msgstr "" #: library/sqlite3.rst:370 msgid "" "The aggregate class must implement a ``step`` method, which accepts the " "number of parameters *num_params* (if *num_params* is -1, the function may " "take any number of arguments), and a ``finalize`` method which will return " "the final result of the aggregate." msgstr "" #: library/sqlite3.rst:375 msgid "" "The ``finalize`` method can return any of the types supported by SQLite: " "bytes, str, int, float and ``None``." msgstr "" #: library/sqlite3.rst:385 msgid "" "Creates a collation with the specified *name* and *callable*. The callable " "will be passed two string arguments. It should return -1 if the first is " "ordered lower than the second, 0 if they are ordered equal and 1 if the " "first is ordered higher than the second. Note that this controls sorting " "(ORDER BY in SQL) so your comparisons don't affect other SQL operations." msgstr "" #: library/sqlite3.rst:391 msgid "" "Note that the callable will get its parameters as Python bytestrings, which " "will normally be encoded in UTF-8." msgstr "" #: library/sqlite3.rst:394 msgid "" "The following example shows a custom collation that sorts \"the wrong way\":" msgstr "" #: library/sqlite3.rst:398 msgid "" "To remove a collation, call ``create_collation`` with ``None`` as callable::" msgstr "" #: library/sqlite3.rst:405 msgid "" "You can call this method from a different thread to abort any queries that " "might be executing on the connection. The query will then abort and the " "caller will get an exception." msgstr "" #: library/sqlite3.rst:412 msgid "" "This routine registers a callback. The callback is invoked for each attempt " "to access a column of a table in the database. The callback should return :" "const:`SQLITE_OK` if access is allowed, :const:`SQLITE_DENY` if the entire " "SQL statement should be aborted with an error and :const:`SQLITE_IGNORE` if " "the column should be treated as a NULL value. These constants are available " "in the :mod:`sqlite3` module." msgstr "" #: library/sqlite3.rst:419 msgid "" "The first argument to the callback signifies what kind of operation is to be " "authorized. The second and third argument will be arguments or :const:`None` " "depending on the first argument. The 4th argument is the name of the " "database (\"main\", \"temp\", etc.) if applicable. The 5th argument is the " "name of the inner-most trigger or view that is responsible for the access " "attempt or :const:`None` if this access attempt is directly from input SQL " "code." msgstr "" #: library/sqlite3.rst:426 msgid "" "Please consult the SQLite documentation about the possible values for the " "first argument and the meaning of the second and third argument depending on " "the first one. All necessary constants are available in the :mod:`sqlite3` " "module." msgstr "" #: library/sqlite3.rst:433 msgid "" "This routine registers a callback. The callback is invoked for every *n* " "instructions of the SQLite virtual machine. This is useful if you want to " "get called from SQLite during long-running operations, for example to update " "a GUI." msgstr "" #: library/sqlite3.rst:438 msgid "" "If you want to clear any previously installed progress handler, call the " "method with :const:`None` for *handler*." msgstr "" #: library/sqlite3.rst:441 msgid "" "Returning a non-zero value from the handler function will terminate the " "currently executing query and cause it to raise an :exc:`OperationalError` " "exception." msgstr "" #: library/sqlite3.rst:448 msgid "" "Registers *trace_callback* to be called for each SQL statement that is " "actually executed by the SQLite backend." msgstr "" #: library/sqlite3.rst:451 msgid "" "The only argument passed to the callback is the statement (as string) that " "is being executed. The return value of the callback is ignored. Note that " "the backend does not only run statements passed to the :meth:`Cursor." "execute` methods. Other sources include the transaction management of the " "Python module and the execution of triggers defined in the current database." msgstr "" #: library/sqlite3.rst:457 msgid "" "Passing :const:`None` as *trace_callback* will disable the trace callback." msgstr "" #: library/sqlite3.rst:464 msgid "" "This routine allows/disallows the SQLite engine to load SQLite extensions " "from shared libraries. SQLite extensions can define new functions, " "aggregates or whole new virtual table implementations. One well-known " "extension is the fulltext-search extension distributed with SQLite." msgstr "" #: library/sqlite3.rst:481 msgid "Loadable extensions are disabled by default. See [#f1]_." msgstr "" #: library/sqlite3.rst:477 msgid "" "This routine loads a SQLite extension from a shared library. You have to " "enable extension loading with :meth:`enable_load_extension` before you can " "use this routine." msgstr "" #: library/sqlite3.rst:487 msgid "" "You can change this attribute to a callable that accepts the cursor and the " "original row as a tuple and will return the real result row. This way, you " "can implement more advanced ways of returning results, such as returning an " "object that can also access columns by name." msgstr "" #: library/sqlite3.rst:496 msgid "" "If returning a tuple doesn't suffice and you want name-based access to " "columns, you should consider setting :attr:`row_factory` to the highly-" "optimized :class:`sqlite3.Row` type. :class:`Row` provides both index-based " "and case-insensitive name-based access to columns with almost no memory " "overhead. It will probably be better than your own custom dictionary-based " "approach or even a db_row based solution." msgstr "" #: library/sqlite3.rst:508 msgid "" "Using this attribute you can control what objects are returned for the " "``TEXT`` data type. By default, this attribute is set to :class:`str` and " "the :mod:`sqlite3` module will return Unicode objects for ``TEXT``. If you " "want to return bytestrings instead, you can set it to :class:`bytes`." msgstr "" #: library/sqlite3.rst:513 msgid "" "You can also set it to any other callable that accepts a single bytestring " "parameter and returns the resulting object." msgstr "" #: library/sqlite3.rst:516 msgid "See the following example code for illustration:" msgstr "" #: library/sqlite3.rst:523 msgid "" "Returns the total number of database rows that have been modified, inserted, " "or deleted since the database connection was opened." msgstr "" #: library/sqlite3.rst:529 msgid "" "Returns an iterator to dump the database in an SQL text format. Useful when " "saving an in-memory database for later restoration. This function provides " "the same capabilities as the :kbd:`.dump` command in the :program:`sqlite3` " "shell." msgstr "" #: library/sqlite3.rst:534 msgid "Example::" msgstr "Exemple ::" #: library/sqlite3.rst:548 msgid "" "This method makes a backup of a SQLite database even while it's being " "accessed by other clients, or concurrently by the same connection. The copy " "will be written into the mandatory argument *target*, that must be another :" "class:`Connection` instance." msgstr "" #: library/sqlite3.rst:553 msgid "" "By default, or when *pages* is either ``0`` or a negative integer, the " "entire database is copied in a single step; otherwise the method performs a " "loop copying up to *pages* pages at a time." msgstr "" #: library/sqlite3.rst:557 msgid "" "If *progress* is specified, it must either be ``None`` or a callable object " "that will be executed at each iteration with three integer arguments, " "respectively the *status* of the last iteration, the *remaining* number of " "pages still to be copied and the *total* number of pages." msgstr "" #: library/sqlite3.rst:562 msgid "" "The *name* argument specifies the database name that will be copied: it must " "be a string containing either ``\"main\"``, the default, to indicate the " "main database, ``\"temp\"`` to indicate the temporary database or the name " "specified after the ``AS`` keyword in an ``ATTACH DATABASE`` statement for " "an attached database." msgstr "" #: library/sqlite3.rst:568 msgid "" "The *sleep* argument specifies the number of seconds to sleep by between " "successive attempts to backup remaining pages, can be specified either as an " "integer or a floating point value." msgstr "" #: library/sqlite3.rst:572 msgid "Example 1, copy an existing database into another::" msgstr "" #: library/sqlite3.rst:586 msgid "Example 2, copy an existing database into a transient copy::" msgstr "" #: library/sqlite3.rst:594 msgid "Availability: SQLite 3.6.11 or higher" msgstr "" #: library/sqlite3.rst:602 msgid "Cursor Objects" msgstr "" #: library/sqlite3.rst:606 msgid "A :class:`Cursor` instance has the following attributes and methods." msgstr "" #: library/sqlite3.rst:613 msgid "" "Executes an SQL statement. The SQL statement may be parameterized (i. e. " "placeholders instead of SQL literals). The :mod:`sqlite3` module supports " "two kinds of placeholders: question marks (qmark style) and named " "placeholders (named style)." msgstr "" #: library/sqlite3.rst:618 msgid "Here's an example of both styles:" msgstr "" #: library/sqlite3.rst:622 msgid "" ":meth:`execute` will only execute a single SQL statement. If you try to " "execute more than one statement with it, it will raise a :exc:`.Warning`. " "Use :meth:`executescript` if you want to execute multiple SQL statements " "with one call." msgstr "" #: library/sqlite3.rst:630 msgid "" "Executes an SQL command against all parameter sequences or mappings found in " "the sequence *seq_of_parameters*. The :mod:`sqlite3` module also allows " "using an :term:`iterator` yielding parameters instead of a sequence." msgstr "" #: library/sqlite3.rst:636 msgid "Here's a shorter example using a :term:`generator`:" msgstr "" #: library/sqlite3.rst:643 msgid "" "This is a nonstandard convenience method for executing multiple SQL " "statements at once. It issues a ``COMMIT`` statement first, then executes " "the SQL script it gets as a parameter." msgstr "" #: library/sqlite3.rst:647 msgid "*sql_script* can be an instance of :class:`str`." msgstr "" #: library/sqlite3.rst:656 msgid "" "Fetches the next row of a query result set, returning a single sequence, or :" "const:`None` when no more data is available." msgstr "" #: library/sqlite3.rst:662 msgid "" "Fetches the next set of rows of a query result, returning a list. An empty " "list is returned when no more rows are available." msgstr "" #: library/sqlite3.rst:665 msgid "" "The number of rows to fetch per call is specified by the *size* parameter. " "If it is not given, the cursor's arraysize determines the number of rows to " "be fetched. The method should try to fetch as many rows as indicated by the " "size parameter. If this is not possible due to the specified number of rows " "not being available, fewer rows may be returned." msgstr "" #: library/sqlite3.rst:671 msgid "" "Note there are performance considerations involved with the *size* " "parameter. For optimal performance, it is usually best to use the arraysize " "attribute. If the *size* parameter is used, then it is best for it to retain " "the same value from one :meth:`fetchmany` call to the next." msgstr "" #: library/sqlite3.rst:678 msgid "" "Fetches all (remaining) rows of a query result, returning a list. Note that " "the cursor's arraysize attribute can affect the performance of this " "operation. An empty list is returned when no rows are available." msgstr "" #: library/sqlite3.rst:684 msgid "Close the cursor now (rather than whenever ``__del__`` is called)." msgstr "" #: library/sqlite3.rst:686 msgid "" "The cursor will be unusable from this point forward; a :exc:" "`ProgrammingError` exception will be raised if any operation is attempted " "with the cursor." msgstr "" #: library/sqlite3.rst:691 msgid "" "Although the :class:`Cursor` class of the :mod:`sqlite3` module implements " "this attribute, the database engine's own support for the determination of " "\"rows affected\"/\"rows selected\" is quirky." msgstr "" #: library/sqlite3.rst:695 msgid "" "For :meth:`executemany` statements, the number of modifications are summed " "up into :attr:`rowcount`." msgstr "" #: library/sqlite3.rst:698 msgid "" "As required by the Python DB API Spec, the :attr:`rowcount` attribute \"is " "-1 in case no ``executeXX()`` has been performed on the cursor or the " "rowcount of the last operation is not determinable by the interface\". This " "includes ``SELECT`` statements because we cannot determine the number of " "rows a query produced until all rows were fetched." msgstr "" #: library/sqlite3.rst:704 msgid "" "With SQLite versions before 3.6.5, :attr:`rowcount` is set to 0 if you make " "a ``DELETE FROM table`` without any condition." msgstr "" #: library/sqlite3.rst:709 msgid "" "This read-only attribute provides the rowid of the last modified row. It is " "only set if you issued an ``INSERT`` or a ``REPLACE`` statement using the :" "meth:`execute` method. For operations other than ``INSERT`` or ``REPLACE`` " "or when :meth:`executemany` is called, :attr:`lastrowid` is set to :const:" "`None`." msgstr "" #: library/sqlite3.rst:715 msgid "" "If the ``INSERT`` or ``REPLACE`` statement failed to insert the previous " "successful rowid is returned." msgstr "" #: library/sqlite3.rst:718 msgid "Added support for the ``REPLACE`` statement." msgstr "" #: library/sqlite3.rst:723 msgid "" "Read/write attribute that controls the number of rows returned by :meth:" "`fetchmany`. The default value is 1 which means a single row would be " "fetched per call." msgstr "" #: library/sqlite3.rst:728 msgid "" "This read-only attribute provides the column names of the last query. To " "remain compatible with the Python DB API, it returns a 7-tuple for each " "column where the last six items of each tuple are :const:`None`." msgstr "" #: library/sqlite3.rst:732 msgid "It is set for ``SELECT`` statements without any matching rows as well." msgstr "" #: library/sqlite3.rst:736 msgid "" "This read-only attribute provides the SQLite database :class:`Connection` " "used by the :class:`Cursor` object. A :class:`Cursor` object created by " "calling :meth:`con.cursor() ` will have a :attr:" "`connection` attribute that refers to *con*::" msgstr "" #: library/sqlite3.rst:749 msgid "Row Objects" msgstr "" #: library/sqlite3.rst:753 msgid "" "A :class:`Row` instance serves as a highly optimized :attr:`~Connection." "row_factory` for :class:`Connection` objects. It tries to mimic a tuple in " "most of its features." msgstr "" #: library/sqlite3.rst:757 msgid "" "It supports mapping access by column name and index, iteration, " "representation, equality testing and :func:`len`." msgstr "" #: library/sqlite3.rst:760 msgid "" "If two :class:`Row` objects have exactly the same columns and their members " "are equal, they compare equal." msgstr "" #: library/sqlite3.rst:765 msgid "" "This method returns a list of column names. Immediately after a query, it is " "the first member of each tuple in :attr:`Cursor.description`." msgstr "" #: library/sqlite3.rst:768 msgid "Added support of slicing." msgstr "" #: library/sqlite3.rst:771 msgid "Let's assume we initialize a table as in the example given above::" msgstr "" #: library/sqlite3.rst:783 msgid "Now we plug :class:`Row` in::" msgstr "" #: library/sqlite3.rst:815 msgid "Exceptions" msgstr "Exceptions" #: library/sqlite3.rst:819 msgid "A subclass of :exc:`Exception`." msgstr "" #: library/sqlite3.rst:823 msgid "" "The base class of the other exceptions in this module. It is a subclass of :" "exc:`Exception`." msgstr "" #: library/sqlite3.rst:828 msgid "Exception raised for errors that are related to the database." msgstr "" #: library/sqlite3.rst:832 msgid "" "Exception raised when the relational integrity of the database is affected, " "e.g. a foreign key check fails. It is a subclass of :exc:`DatabaseError`." msgstr "" #: library/sqlite3.rst:837 msgid "" "Exception raised for programming errors, e.g. table not found or already " "exists, syntax error in the SQL statement, wrong number of parameters " "specified, etc. It is a subclass of :exc:`DatabaseError`." msgstr "" #: library/sqlite3.rst:843 msgid "" "Exception raised for errors that are related to the database's operation and " "not necessarily under the control of the programmer, e.g. an unexpected " "disconnect occurs, the data source name is not found, a transaction could " "not be processed, etc. It is a subclass of :exc:`DatabaseError`." msgstr "" #: library/sqlite3.rst:850 msgid "" "Exception raised in case a method or database API was used which is not " "supported by the database, e.g. calling the :meth:`~Connection.rollback` " "method on a connection that does not support transaction or has transactions " "turned off. It is a subclass of :exc:`DatabaseError`." msgstr "" #: library/sqlite3.rst:859 msgid "SQLite and Python types" msgstr "" #: library/sqlite3.rst:863 msgid "Introduction" msgstr "Introduction" #: library/sqlite3.rst:865 msgid "" "SQLite natively supports the following types: ``NULL``, ``INTEGER``, " "``REAL``, ``TEXT``, ``BLOB``." msgstr "" #: library/sqlite3.rst:868 msgid "" "The following Python types can thus be sent to SQLite without any problem:" msgstr "" #: library/sqlite3.rst:888 msgid "Python type" msgstr "Type Python" #: library/sqlite3.rst:888 msgid "SQLite type" msgstr "SQLite type" #: library/sqlite3.rst:890 msgid ":const:`None`" msgstr ":const:`None`" #: library/sqlite3.rst:890 msgid "``NULL``" msgstr "``NULL``" #: library/sqlite3.rst:892 msgid ":class:`int`" msgstr ":class:`int`" #: library/sqlite3.rst:892 msgid "``INTEGER``" msgstr "``INTEGER``" #: library/sqlite3.rst:894 msgid ":class:`float`" msgstr ":class:`float`" #: library/sqlite3.rst:894 msgid "``REAL``" msgstr "``REAL``" #: library/sqlite3.rst:879 msgid ":class:`str`" msgstr ":class:`str`" #: library/sqlite3.rst:896 msgid "``TEXT``" msgstr "``TEXT``" #: library/sqlite3.rst:899 msgid ":class:`bytes`" msgstr ":class:`bytes`" #: library/sqlite3.rst:899 msgid "``BLOB``" msgstr "``BLOB``" #: library/sqlite3.rst:885 msgid "This is how SQLite types are converted to Python types by default:" msgstr "" #: library/sqlite3.rst:896 msgid "depends on :attr:`~Connection.text_factory`, :class:`str` by default" msgstr "" #: library/sqlite3.rst:902 msgid "" "The type system of the :mod:`sqlite3` module is extensible in two ways: you " "can store additional Python types in a SQLite database via object " "adaptation, and you can let the :mod:`sqlite3` module convert SQLite types " "to different Python types via converters." msgstr "" #: library/sqlite3.rst:909 msgid "Using adapters to store additional Python types in SQLite databases" msgstr "" #: library/sqlite3.rst:911 msgid "" "As described before, SQLite supports only a limited set of types natively. " "To use other Python types with SQLite, you must **adapt** them to one of the " "sqlite3 module's supported types for SQLite: one of NoneType, int, float, " "str, bytes." msgstr "" #: library/sqlite3.rst:916 msgid "" "There are two ways to enable the :mod:`sqlite3` module to adapt a custom " "Python type to one of the supported ones." msgstr "" #: library/sqlite3.rst:921 msgid "Letting your object adapt itself" msgstr "" #: library/sqlite3.rst:923 msgid "" "This is a good approach if you write the class yourself. Let's suppose you " "have a class like this::" msgstr "" #: library/sqlite3.rst:930 msgid "" "Now you want to store the point in a single SQLite column. First you'll " "have to choose one of the supported types to be used for representing the " "point. Let's just use str and separate the coordinates using a semicolon. " "Then you need to give your class a method ``__conform__(self, protocol)`` " "which must return the converted value. The parameter *protocol* will be :" "class:`PrepareProtocol`." msgstr "" #: library/sqlite3.rst:940 msgid "Registering an adapter callable" msgstr "" #: library/sqlite3.rst:942 msgid "" "The other possibility is to create a function that converts the type to the " "string representation and register the function with :meth:" "`register_adapter`." msgstr "" #: library/sqlite3.rst:947 msgid "" "The :mod:`sqlite3` module has two default adapters for Python's built-in :" "class:`datetime.date` and :class:`datetime.datetime` types. Now let's " "suppose we want to store :class:`datetime.datetime` objects not in ISO " "representation, but as a Unix timestamp." msgstr "" #: library/sqlite3.rst:956 msgid "Converting SQLite values to custom Python types" msgstr "" #: library/sqlite3.rst:958 msgid "" "Writing an adapter lets you send custom Python types to SQLite. But to make " "it really useful we need to make the Python to SQLite to Python roundtrip " "work." msgstr "" #: library/sqlite3.rst:961 msgid "Enter converters." msgstr "" #: library/sqlite3.rst:963 msgid "" "Let's go back to the :class:`Point` class. We stored the x and y coordinates " "separated via semicolons as strings in SQLite." msgstr "" #: library/sqlite3.rst:966 msgid "" "First, we'll define a converter function that accepts the string as a " "parameter and constructs a :class:`Point` object from it." msgstr "" #: library/sqlite3.rst:971 msgid "" "Converter functions **always** get called with a :class:`bytes` object, no " "matter under which data type you sent the value to SQLite." msgstr "" #: library/sqlite3.rst:980 msgid "" "Now you need to make the :mod:`sqlite3` module know that what you select " "from the database is actually a point. There are two ways of doing this:" msgstr "" #: library/sqlite3.rst:983 msgid "Implicitly via the declared type" msgstr "" #: library/sqlite3.rst:985 msgid "Explicitly via the column name" msgstr "" #: library/sqlite3.rst:987 msgid "" "Both ways are described in section :ref:`sqlite3-module-contents`, in the " "entries for the constants :const:`PARSE_DECLTYPES` and :const:" "`PARSE_COLNAMES`." msgstr "" #: library/sqlite3.rst:990 msgid "The following example illustrates both approaches." msgstr "" #: library/sqlite3.rst:996 msgid "Default adapters and converters" msgstr "" #: library/sqlite3.rst:998 msgid "" "There are default adapters for the date and datetime types in the datetime " "module. They will be sent as ISO dates/ISO timestamps to SQLite." msgstr "" #: library/sqlite3.rst:1001 msgid "" "The default converters are registered under the name \"date\" for :class:" "`datetime.date` and under the name \"timestamp\" for :class:`datetime." "datetime`." msgstr "" #: library/sqlite3.rst:1005 msgid "" "This way, you can use date/timestamps from Python without any additional " "fiddling in most cases. The format of the adapters is also compatible with " "the experimental SQLite date/time functions." msgstr "" #: library/sqlite3.rst:1009 msgid "The following example demonstrates this." msgstr "" #: library/sqlite3.rst:1013 msgid "" "If a timestamp stored in SQLite has a fractional part longer than 6 numbers, " "its value will be truncated to microsecond precision by the timestamp " "converter." msgstr "" #: library/sqlite3.rst:1021 msgid "Controlling Transactions" msgstr "" #: library/sqlite3.rst:1023 msgid "" "The underlying ``sqlite3`` library operates in ``autocommit`` mode by " "default, but the Python :mod:`sqlite3` module by default does not." msgstr "" #: library/sqlite3.rst:1026 msgid "" "``autocommit`` mode means that statements that modify the database take " "effect immediately. A ``BEGIN`` or ``SAVEPOINT`` statement disables " "``autocommit`` mode, and a ``COMMIT``, a ``ROLLBACK``, or a ``RELEASE`` that " "ends the outermost transaction, turns ``autocommit`` mode back on." msgstr "" #: library/sqlite3.rst:1031 msgid "" "The Python :mod:`sqlite3` module by default issues a ``BEGIN`` statement " "implicitly before a Data Modification Language (DML) statement (i.e. " "``INSERT``/``UPDATE``/``DELETE``/``REPLACE``)." msgstr "" #: library/sqlite3.rst:1035 msgid "" "You can control which kind of ``BEGIN`` statements :mod:`sqlite3` implicitly " "executes via the *isolation_level* parameter to the :func:`connect` call, or " "via the :attr:`isolation_level` property of connections. If you specify no " "*isolation_level*, a plain ``BEGIN`` is used, which is equivalent to " "specifying ``DEFERRED``. Other possible values are ``IMMEDIATE`` and " "``EXCLUSIVE``." msgstr "" #: library/sqlite3.rst:1042 msgid "" "You can disable the :mod:`sqlite3` module's implicit transaction management " "by setting :attr:`isolation_level` to ``None``. This will leave the " "underlying ``sqlite3`` library operating in ``autocommit`` mode. You can " "then completely control the transaction state by explicitly issuing " "``BEGIN``, ``ROLLBACK``, ``SAVEPOINT``, and ``RELEASE`` statements in your " "code." msgstr "" #: library/sqlite3.rst:1048 msgid "" ":mod:`sqlite3` used to implicitly commit an open transaction before DDL " "statements. This is no longer the case." msgstr "" #: library/sqlite3.rst:1054 msgid "Using :mod:`sqlite3` efficiently" msgstr "" #: library/sqlite3.rst:1058 msgid "Using shortcut methods" msgstr "" #: library/sqlite3.rst:1060 msgid "" "Using the nonstandard :meth:`execute`, :meth:`executemany` and :meth:" "`executescript` methods of the :class:`Connection` object, your code can be " "written more concisely because you don't have to create the (often " "superfluous) :class:`Cursor` objects explicitly. Instead, the :class:" "`Cursor` objects are created implicitly and these shortcut methods return " "the cursor objects. This way, you can execute a ``SELECT`` statement and " "iterate over it directly using only a single call on the :class:`Connection` " "object." msgstr "" #: library/sqlite3.rst:1072 msgid "Accessing columns by name instead of by index" msgstr "" #: library/sqlite3.rst:1074 msgid "" "One useful feature of the :mod:`sqlite3` module is the built-in :class:" "`sqlite3.Row` class designed to be used as a row factory." msgstr "" #: library/sqlite3.rst:1077 msgid "" "Rows wrapped with this class can be accessed both by index (like tuples) and " "case-insensitively by name:" msgstr "" #: library/sqlite3.rst:1084 msgid "Using the connection as a context manager" msgstr "" #: library/sqlite3.rst:1086 msgid "" "Connection objects can be used as context managers that automatically commit " "or rollback transactions. In the event of an exception, the transaction is " "rolled back; otherwise, the transaction is committed:" msgstr "" #: library/sqlite3.rst:1095 msgid "Common issues" msgstr "" #: library/sqlite3.rst:1098 msgid "Multithreading" msgstr "Fils d'exécution" #: library/sqlite3.rst:1100 msgid "" "Older SQLite versions had issues with sharing connections between threads. " "That's why the Python module disallows sharing connections and cursors " "between threads. If you still try to do so, you will get an exception at " "runtime." msgstr "" #: library/sqlite3.rst:1104 msgid "" "The only exception is calling the :meth:`~Connection.interrupt` method, " "which only makes sense to call from a different thread." msgstr "" #: library/sqlite3.rst:1108 msgid "Footnotes" msgstr "Notes" #: library/sqlite3.rst:1109 msgid "" "The sqlite3 module is not built with loadable extension support by default, " "because some platforms (notably Mac OS X) have SQLite libraries which are " "compiled without this feature. To get loadable extension support, you must " "pass --enable-loadable-sqlite-extensions to configure." msgstr ""