| 
									
										
										
										
											2006-04-21 10:40:58 +00:00
										 |  |  | # pysqlite2/__init__.py: the pysqlite2 package. | 
					
						
							|  |  |  | # | 
					
						
							| 
									
										
										
										
											2010-08-30 14:05:50 +00:00
										 |  |  | # Copyright (C) 2005 Gerhard Häring <gh@ghaering.de> | 
					
						
							| 
									
										
										
										
											2006-04-21 10:40:58 +00:00
										 |  |  | # | 
					
						
							|  |  |  | # This file is part of pysqlite. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # This software is provided 'as-is', without any express or implied | 
					
						
							|  |  |  | # warranty.  In no event will the authors be held liable for any damages | 
					
						
							|  |  |  | # arising from the use of this software. | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # Permission is granted to anyone to use this software for any purpose, | 
					
						
							|  |  |  | # including commercial applications, and to alter it and redistribute it | 
					
						
							|  |  |  | # freely, subject to the following restrictions: | 
					
						
							|  |  |  | # | 
					
						
							|  |  |  | # 1. The origin of this software must not be misrepresented; you must not | 
					
						
							|  |  |  | #    claim that you wrote the original software. If you use this software | 
					
						
							|  |  |  | #    in a product, an acknowledgment in the product documentation would be | 
					
						
							|  |  |  | #    appreciated but is not required. | 
					
						
							|  |  |  | # 2. Altered source versions must be plainly marked as such, and must not be | 
					
						
							|  |  |  | #    misrepresented as being the original software. | 
					
						
							|  |  |  | # 3. This notice may not be removed or altered from any source distribution. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-28 21:55:27 +02:00
										 |  |  | """
 | 
					
						
							| 
									
										
										
										
											2022-03-28 13:44:41 -05:00
										 |  |  | The sqlite3 extension module provides a DB-API 2.0 (PEP 249) compliant | 
					
						
							| 
									
										
										
										
											2021-10-28 21:55:27 +02:00
										 |  |  | interface to the SQLite library, and requires SQLite 3.7.15 or newer. | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-15 23:22:42 +01:00
										 |  |  | To use the module, start by creating a database Connection object: | 
					
						
							| 
									
										
										
										
											2021-10-28 21:55:27 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     import sqlite3 | 
					
						
							|  |  |  |     cx = sqlite3.connect("test.db")  # test.db will be created or opened | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-15 23:22:42 +01:00
										 |  |  | The special path name ":memory:" can be provided to connect to a transient | 
					
						
							| 
									
										
										
										
											2021-10-28 21:55:27 +02:00
										 |  |  | in-memory database: | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     cx = sqlite3.connect(":memory:")  # connect to a database in RAM | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-11-15 23:22:42 +01:00
										 |  |  | Once a connection has been established, create a Cursor object and call | 
					
						
							|  |  |  | its execute() method to perform SQL queries: | 
					
						
							| 
									
										
										
										
											2021-10-28 21:55:27 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     cu = cx.cursor() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # create a table | 
					
						
							|  |  |  |     cu.execute("create table lang(name, first_appeared)") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # insert values into a table | 
					
						
							|  |  |  |     cu.execute("insert into lang values (?, ?)", ("C", 1972)) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     # execute a query and iterate over the result | 
					
						
							|  |  |  |     for row in cu.execute("select * from lang"): | 
					
						
							|  |  |  |         print(row) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     cx.close() | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | The sqlite3 module is written by Gerhard Häring <gh@ghaering.de>. | 
					
						
							|  |  |  | """
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2006-08-17 20:24:18 +00:00
										 |  |  | from sqlite3.dbapi2 import * | 
					
						
							| 
									
										
										
										
											2022-06-08 05:04:50 +05:30
										 |  |  | from sqlite3.dbapi2 import (_deprecated_names, | 
					
						
							|  |  |  |                             _deprecated_version_info, | 
					
						
							|  |  |  |                             _deprecated_version) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | def __getattr__(name): | 
					
						
							|  |  |  |     if name in _deprecated_names: | 
					
						
							|  |  |  |         from warnings import warn | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         warn(f"{name} is deprecated and will be removed in Python 3.14", | 
					
						
							|  |  |  |              DeprecationWarning, stacklevel=2) | 
					
						
							|  |  |  |         return globals()[f"_deprecated_{name}"] | 
					
						
							|  |  |  |     raise AttributeError(f"module {__name__!r} has no attribute {name!r}") |