xref: /third_party/python/Lib/sqlite3/__init__.py (revision 7db96d56)
17db96d56Sopenharmony_ci# pysqlite2/__init__.py: the pysqlite2 package.
27db96d56Sopenharmony_ci#
37db96d56Sopenharmony_ci# Copyright (C) 2005 Gerhard Häring <gh@ghaering.de>
47db96d56Sopenharmony_ci#
57db96d56Sopenharmony_ci# This file is part of pysqlite.
67db96d56Sopenharmony_ci#
77db96d56Sopenharmony_ci# This software is provided 'as-is', without any express or implied
87db96d56Sopenharmony_ci# warranty.  In no event will the authors be held liable for any damages
97db96d56Sopenharmony_ci# arising from the use of this software.
107db96d56Sopenharmony_ci#
117db96d56Sopenharmony_ci# Permission is granted to anyone to use this software for any purpose,
127db96d56Sopenharmony_ci# including commercial applications, and to alter it and redistribute it
137db96d56Sopenharmony_ci# freely, subject to the following restrictions:
147db96d56Sopenharmony_ci#
157db96d56Sopenharmony_ci# 1. The origin of this software must not be misrepresented; you must not
167db96d56Sopenharmony_ci#    claim that you wrote the original software. If you use this software
177db96d56Sopenharmony_ci#    in a product, an acknowledgment in the product documentation would be
187db96d56Sopenharmony_ci#    appreciated but is not required.
197db96d56Sopenharmony_ci# 2. Altered source versions must be plainly marked as such, and must not be
207db96d56Sopenharmony_ci#    misrepresented as being the original software.
217db96d56Sopenharmony_ci# 3. This notice may not be removed or altered from any source distribution.
227db96d56Sopenharmony_ci
237db96d56Sopenharmony_ci"""
247db96d56Sopenharmony_ciThe sqlite3 extension module provides a DB-API 2.0 (PEP 249) compliant
257db96d56Sopenharmony_ciinterface to the SQLite library, and requires SQLite 3.7.15 or newer.
267db96d56Sopenharmony_ci
277db96d56Sopenharmony_ciTo use the module, start by creating a database Connection object:
287db96d56Sopenharmony_ci
297db96d56Sopenharmony_ci    import sqlite3
307db96d56Sopenharmony_ci    cx = sqlite3.connect("test.db")  # test.db will be created or opened
317db96d56Sopenharmony_ci
327db96d56Sopenharmony_ciThe special path name ":memory:" can be provided to connect to a transient
337db96d56Sopenharmony_ciin-memory database:
347db96d56Sopenharmony_ci
357db96d56Sopenharmony_ci    cx = sqlite3.connect(":memory:")  # connect to a database in RAM
367db96d56Sopenharmony_ci
377db96d56Sopenharmony_ciOnce a connection has been established, create a Cursor object and call
387db96d56Sopenharmony_ciits execute() method to perform SQL queries:
397db96d56Sopenharmony_ci
407db96d56Sopenharmony_ci    cu = cx.cursor()
417db96d56Sopenharmony_ci
427db96d56Sopenharmony_ci    # create a table
437db96d56Sopenharmony_ci    cu.execute("create table lang(name, first_appeared)")
447db96d56Sopenharmony_ci
457db96d56Sopenharmony_ci    # insert values into a table
467db96d56Sopenharmony_ci    cu.execute("insert into lang values (?, ?)", ("C", 1972))
477db96d56Sopenharmony_ci
487db96d56Sopenharmony_ci    # execute a query and iterate over the result
497db96d56Sopenharmony_ci    for row in cu.execute("select * from lang"):
507db96d56Sopenharmony_ci        print(row)
517db96d56Sopenharmony_ci
527db96d56Sopenharmony_ci    cx.close()
537db96d56Sopenharmony_ci
547db96d56Sopenharmony_ciThe sqlite3 module is written by Gerhard Häring <gh@ghaering.de>.
557db96d56Sopenharmony_ci"""
567db96d56Sopenharmony_ci
577db96d56Sopenharmony_cifrom sqlite3.dbapi2 import *
587db96d56Sopenharmony_ci
597db96d56Sopenharmony_ci
607db96d56Sopenharmony_ci# bpo-42264: OptimizedUnicode was deprecated in Python 3.10.  It's scheduled
617db96d56Sopenharmony_ci# for removal in Python 3.12.
627db96d56Sopenharmony_cidef __getattr__(name):
637db96d56Sopenharmony_ci    if name == "OptimizedUnicode":
647db96d56Sopenharmony_ci        import warnings
657db96d56Sopenharmony_ci        msg = ("""
667db96d56Sopenharmony_ci            OptimizedUnicode is deprecated and will be removed in Python 3.12.
677db96d56Sopenharmony_ci            Since Python 3.3 it has simply been an alias for 'str'.
687db96d56Sopenharmony_ci        """)
697db96d56Sopenharmony_ci        warnings.warn(msg, DeprecationWarning, stacklevel=2)
707db96d56Sopenharmony_ci        return str
717db96d56Sopenharmony_ci    raise AttributeError(f"module 'sqlite3' has no attribute '{name}'")
72