Data commit

This commit is contained in:
Ingy döt Net 2023-07-01 11:58:00 -04:00
parent 7387c8f97b
commit cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions

View file

@ -0,0 +1,3 @@
---
from: http://rosettacode.org/wiki/Table_creation/Postal_addresses
note: Database operations

View file

@ -0,0 +1,8 @@
;Task:
Create a table to store addresses.
You may assume that all the addresses to be stored will be located in the USA.   As such, you will need (in addition to a field holding a unique identifier) a field holding the street address, a field holding the city, a field holding the state code, and a field holding the zipcode.   Choose appropriate types for each field.
For non-database languages, show how you would open a connection to a database (your choice of which) and create an address table in it. You should follow the existing models here for how you would structure the table.
<br><br>

View file

@ -0,0 +1,46 @@
MODE ADDRESS = STRUCT(
INT page,
FLEX[50]CHAR street,
FLEX[25]CHAR city,
FLEX[2]CHAR state,
FLEX[10]CHAR zip
);
FORMAT address repr = $"Page: "gl"Street: "gl"City: "gl"State: "gl"Zip: "gll$;
INT errno;
FILE sequence; errno := open(sequence, "sequence.txt", stand back channel);
SEMA sequence sema := LEVEL 1;
OP NEXTVAL = ([]CHAR table name)INT: (
INT out;
# INT table page = 0; # # only one sequence implemented #
# DOWN sequence sema; # # NO interprocess concurrency protection #
on open error(sequence,
(REF FILE f)BOOL: (
reset(sequence); #set(table page,1,1);#
put(sequence, 0);
try again;
FALSE
)
);
try again:
reset(sequence); #set(table page,1,1);# get(sequence,out);
out +:=1;
reset(sequence); #set(table page,1,1);# put(sequence,out);
# UP sequence sema; #
out
);
OP INIT = (REF ADDRESS self)REF ADDRESS: ( page OF self := NEXTVAL "address"; self);
REF ADDRESS john brown = INIT LOC ADDRESS;
john brown := (page OF john brown, "10 Downing Street","London","England","SW1A 2AA");
printf((address repr, john brown));
FILE address table;
errno := open(address table,"address.txt",stand back channel);
# set(address table, page OF john brown,1,1); - standard set page not available in a68g #
put bin(address table, john brown);
close(address table)

View file

@ -0,0 +1,33 @@
#!/bin/sh -f
awk '
BEGIN {
print "Creating table..."
dbExec("address.db", "create table address (street, city, state, zip);")
print "Done."
exit
}
function dbExec(db, qry, result) {
dbMakeQuery(db, qry) | getline result
dbErrorCheck(result)
}
function dbMakeQuery(db, qry, q) {
q = dbEscapeQuery(qry) ";"
return "echo \"" q "\" | sqlite3 " db
}
function dbEscapeQuery(qry, q) {
q = qry
gsub(/"/, "\\\"", q)
return q
}
function dbErrorCheck(res) {
if (res ~ "SQL error") {
print res
exit
}
}
'

View file

@ -0,0 +1,13 @@
db: open.sqlite "addresses.db"
query db {!sql
CREATE TABLE address (
addrID INTEGER PRIMARY KEY AUTOINCREMENT,
addrStreet TEXT NOT NULL,
addrCity TEXT NOT NULL,
addrState TEXT NOT NULL,
addrZIP TEXT NOT NULL
)
}
close db

View file

@ -0,0 +1,32 @@
#include <stdio.h>
#include <stdlib.h>
#include <sqlite3.h>
const char *code =
"CREATE TABLE address (\n"
" addrID INTEGER PRIMARY KEY AUTOINCREMENT,\n"
" addrStreet TEXT NOT NULL,\n"
" addrCity TEXT NOT NULL,\n"
" addrState TEXT NOT NULL,\n"
" addrZIP TEXT NOT NULL)\n" ;
int main()
{
sqlite3 *db = NULL;
char *errmsg;
if ( sqlite3_open("address.db", &db) == SQLITE_OK ) {
if ( sqlite3_exec(db, code, NULL, NULL, &errmsg) != SQLITE_OK ) {
fprintf(stderr, errmsg);
sqlite3_free(errmsg);
sqlite3_close(db);
exit(EXIT_FAILURE);
}
sqlite3_close(db);
} else {
fprintf(stderr, "cannot open db...\n");
sqlite3_close(db);
exit(EXIT_FAILURE);
}
return EXIT_SUCCESS;
}

View file

@ -0,0 +1,13 @@
(require '[clojure.java.jdbc :as sql])
; Using h2database for this simple example.
(def db {:classname "org.h2.Driver"
:subprotocol "h2:file"
:subname "db/my-dbname"})
(sql/db-do-commands db
(sql/create-table-ddl :address
[:id "bigint primary key auto_increment"]
[:street "varchar"]
[:city "varchar"]
[:state "varchar"]
[:zip "varchar"]))

View file

@ -0,0 +1,16 @@
(lib 'struct)
(lib 'sql)
(define Postal (make-table
(struct postal (auto: id name street city state zip))))
Postal
→ #table:#struct:postal [id name street city state zip]:[0]
(table-insert Postal '(0 Gallubert "29 rue de l'Ermitage" Paris Seine 75020))
(table-insert Postal '(0 Brougnard "666 rue des Cascades " Paris Seine 75042))
(table-make-index Postal 'postal.id)
(table-print Postal)
[0] 15 Gallubert 29 rue de l'Ermitage Paris Seine 75020
[1] 16 Brougnard 666 rue des Cascades Paris Seine 75042

View file

@ -0,0 +1,9 @@
-module( table_creation ).
-export( [task/0] ).
-record( address, {id, street, city, zip} ).
task() ->
mnesia:start(),
mnesia:create_table( address, [{attributes, record_info(fields, address)}] ).

View file

@ -0,0 +1,37 @@
import db.*
import util.*
Class.forName( 'org.h2.Driver' )
conn = DriverManager.getConnection( 'jdbc:h2:mem:test', 'sa', '' )
statement = conn.createStatement()
statement.execute( '''
CREATE TABLE `user_data` (
`id` identity,
`name` varchar(255) NOT NULL,
`street` varchar(255) NOT NULL,
`city` varchar(255) NOT NULL,
`region` char(2) NOT NULL,
`country` char(2) NOT NULL,
`code` varchar(20) NOT NULL,
`phone` varchar(20) NOT NULL,
PRIMARY KEY (`id`)
)''' )
statement.execute( '''
INSERT INTO `user_data` (`name`, `street`, `city`, `region`, `code`, `country`, `phone`) VALUES
('Jacinthe Steinert', '8540 Fallen Pony Villas', 'Searights', 'IA', '51584-4315', 'US', '(641) 883-4342'),
('Keeley Pinkham', '1363 Easy Downs', 'Mileta', 'TX', '77667-7376', 'US', '(469) 527-4784'),
('Rimon Cleveland', '8052 Blue Pond Dale', 'The Willows', 'UT', '84630-2674', 'US', '(385) 305-7261'),
('Berenice Benda', '2688 Merry Pines', 'Dacono', 'HI', '96766-7398', 'US', '(808) 451-2732'),
('Mehetabel Marcano', '109 Sleepy Goose Crescent', 'Plains', 'UT', '84727-7254', 'US', '(385) 733-8404'),
('Ambria Schiller', '7100 Tawny Robin Highway', 'Barlowes', 'ID', '83792-2043', 'US', '(208) 227-8887'),
('Carne Cancino', '3842 Broad Pioneer Cape', 'Bardstown', 'IA', '51571-6473', 'US', '(563) 060-8352'),
('Ince Leite', '7876 Stony Fawn Boulevard', 'Easton', 'ID', '83651-9235', 'US', '(208) 951-3024'),
('Britney Odell', '3386 Lazy Shadow Thicket', 'Kimberly', 'OK', '73539-6632', 'US', '(539) 848-4448'),
('Suprabha Penton', '9311 Dusty Leaf Alley', 'Niumalu', 'GA', '39927-8332', 'US', '(404) 589-0183')''' )
result = statement.executeQuery( '''SELECT * FROM user_data WHERE region = 'ID' ORDER BY code''' )
print( TextTable.apply(result) )
conn.close()

View file

@ -0,0 +1,47 @@
package main
import (
"database/sql"
"fmt"
"log"
_ "github.com/mattn/go-sqlite3"
)
func main() {
// task req: show database connection
db, err := sql.Open("sqlite3", "rc.db")
if err != nil {
log.Print(err)
return
}
defer db.Close()
// task req: create table with typed fields, including a unique id
_, err = db.Exec(`create table addr (
id int unique,
street text,
city text,
state text,
zip text
)`)
if err != nil {
log.Print(err)
return
}
// show output: query the created field names and types
rows, err := db.Query(`pragma table_info(addr)`)
if err != nil {
log.Print(err)
return
}
var field, storage string
var ignore sql.RawBytes
for rows.Next() {
err = rows.Scan(&ignore, &field, &storage, &ignore, &ignore, &ignore)
if err != nil {
log.Print(err)
return
}
fmt.Println(field, storage)
}
}

View file

@ -0,0 +1,15 @@
{-# LANGUAGE OverloadedStrings #-}
import Database.SQLite.Simple
main = do
db <- open "postal.db"
execute_ db "\
\CREATE TABLE address (\
\addrID INTEGER PRIMARY KEY AUTOINCREMENT, \
\addrStreet TEXT NOT NULL, \
\addrCity TEXT NOT NULL, \
\addrState TEXT NOT NULL, \
\addrZIP TEXT NOT NULL \
\)"
close db

View file

@ -0,0 +1,7 @@
Create__hd 'Address';noun define
addrID autoid;
addrStreet varchar
addrCity varchar
addrState char
addrZip char
)

View file

@ -0,0 +1,11 @@
using SQLite
db = SQLite.DB()
SQLite.execute!(db, """\
CREATE TABLE address (
addrID INTEGER PRIMARY KEY AUTOINCREMENT,
addrStreet TEXT NOT NULL,
addrCity TEXT NOT NULL,
addrState TEXT NOT NULL,
addrZIP TEXT NOT NULL)
""")

View file

@ -0,0 +1,89 @@
// Version 1.2.41
import java.io.File
import java.io.RandomAccessFile
fun String.toFixedLength(len: Int) = this.padEnd(len).substring(0, len)
class Address(
var name: String,
var street: String = "",
var city: String = "",
var state: String = "",
var zipCode: String = "",
val autoId: Boolean = true
) {
var id = 0L
private set
init {
if (autoId) id = ++nextId
}
companion object {
private var nextId = 0L
const val RECORD_LENGTH = 127 // including 2 bytes for UTF string length
fun readRecord(file: File, id: Long): Address {
val raf = RandomAccessFile(file, "r")
val seekPoint = (id - 1) * RECORD_LENGTH
raf.use {
it.seek(seekPoint)
val id2 = it.readLong()
if (id != id2) {
println("Database is corrupt")
System.exit(1)
}
val text = it.readUTF()
val name = text.substring(0, 30).trimEnd()
val street = text.substring(30, 80).trimEnd()
val city = text.substring(80, 105).trimEnd()
val state = text.substring(105, 107)
val zipCode = text.substring(107).trimEnd()
val a = Address(name, street, city, state, zipCode, false)
a.id = id
return a
}
}
}
override fun toString() =
"Id : ${this.id}\n" +
"Name : $name\n" +
"Street : $street\n" +
"City : $city\n" +
"State : $state\n" +
"Zip Code : $zipCode\n"
fun writeRecord(file: File) {
val raf = RandomAccessFile(file, "rw")
val text =
name.toFixedLength(30) +
street.toFixedLength(50) +
city.toFixedLength(25) +
state +
zipCode.toFixedLength(10)
val seekPoint = (id - 1) * RECORD_LENGTH
raf.use {
it.seek(seekPoint)
it.writeLong(id)
it.writeUTF(text)
}
}
}
fun main(args: Array<String>) {
val file = File("addresses.dat")
val addresses = listOf(
Address("FSF Inc.", "51 Franklin Street", "Boston", "MA", "02110-1301"),
Address("The White House", "The Oval Office, 1600 Pennsylvania Avenue NW", "Washington", "DC", "20500")
)
// write the address records to the file
addresses.forEach { it.writeRecord(file) }
// now read them back in reverse order and print them out
for (i in 2 downTo 1) {
println(Address.readRecord(file, i.toLong()))
}
}

View file

@ -0,0 +1,12 @@
// connect to a Mysql database
inline(-database = 'rosettatest', -sql = "CREATE TABLE `address` (
`id` int(11) NOT NULL auto_increment,
`street` varchar(50) NOT NULL default '',
`city` varchar(25) NOT NULL default '',
`state` char(2) NOT NULL default '',
`zip` char(10) NOT NULL default '',
PRIMARY KEY (`id`)
);
") => {^
error_msg
^}

View file

@ -0,0 +1,18 @@
-- Import module
local sql = require("ljsqlite3")
-- Open connection to database file
local conn = sql.open("address.sqlite")
-- Create address table unless it already exists
conn:exec[[
CREATE TABLE IF NOT EXISTS address(
id INTEGER PRIMARY KEY AUTOINCREMENT,
street TEXT NOT NULL,
city TEXT NOT NULL,
state TEXT NOT NULL,
zip TEXT NOT NULL)
]]
-- Explicitly close connection
conn:close()

View file

@ -0,0 +1,7 @@
TableCreation="CREATE TABLE address (
addrID INTEGER PRIMARY KEY AUTOINCREMENT,
addrStreet TEXT NOT NULL, addrCity TEXT NOT NULL,
addrState TEXT NOT NULL, addrZIP TEXT NOT NULL )";
Needs["DatabaseLink`"]
conn=OpenSQLConnection[ JDBC[ "mysql","databases:1234/conn_test"], "Username" -> "test"]
SQLExecute[ conn, TableCreation]

View file

@ -0,0 +1,8 @@
CREATE TABLE `Address` (
`addrID` int(11) NOT NULL auto_increment,
`addrStreet` varchar(50) NOT NULL default '',
`addrCity` varchar(25) NOT NULL default '',
`addrState` char(2) NOT NULL default '',
`addrZIP` char(10) NOT NULL default '',
PRIMARY KEY (`addrID`)
);

View file

@ -0,0 +1,60 @@
/* NetRexx */
options replace format comments java crossref symbols binary
import java.sql.Connection
import java.sql.Statement
import java.sql.SQLException
import java.sql.DriverManager
class RTableCreate01 public
properties private constant
addressDDL = String '' -
' create table Address' -
' (' -
' addrID integer primary key generated by default as identity,' -
' addrStreet varchar(50) not null,' -
' addrCity varchar(50) not null,' -
' addrState char(2) not null,' -
' addrZip char(10) not null' -
' )'
driver = String 'org.apache.derby.jdbc.EmbeddedDriver'
dbName = String 'db/rosetta_code'
method createTable() public static
connectionURL = String
conn = java.sql.Connection
sqlStatement = java.sql.Statement
do
Class.forName(driver)
connectionURL = 'jdbc:derby:' || dbName || ';' || 'create=true'
conn = DriverManager.getConnection(connectionURL)
sqlStatement = conn.createStatement()
say 'Creating table'
sqlStatement.execute(addressDDL)
say 'Table creation complete'
sqlStatement.close()
conn.close()
do
-- In embedded mode, an application should shut down Derby.
-- Shutdown throws the XJ015 exception to confirm success.
connectionURL = 'jdbc:derby:' || ';' || 'shutdown=true'
DriverManager.getConnection(connectionURL)
catch sex = SQLException
if sex.getSQLState().equals("XJ015") then do
say 'Database shut down normally'
end
else do
say 'Database did not shut down normally'
signal sex
end
end
catch sex = SQLException
sex.printStackTrace()
catch ex = ClassNotFoundException
ex.printStackTrace()
end
return
method main(args = String[]) public static
createTable()
return

View file

@ -0,0 +1,18 @@
import db_sqlite as db
#import db_mysql as db
#import db_postgres as db
const
connection = ":memory:"
user = "foo"
pass = "bar"
database = "db"
var c = open(connection, user, pass, database)
c.exec sql"""CREATE TABLE address (
addrID INTEGER PRIMARY KEY AUTOINCREMENT,
addrStreet TEXT NOT NULL,
addrCity TEXT NOT NULL,
addrState TEXT NOT NULL,
addrZIP TEXT NOT NULL)"""
c.close()

View file

@ -0,0 +1,41 @@
/* REXX ***************************************************************
* 17.05.2013 Walter Pachl translated from REXX version 2
* nice try? improvements are welcome as I am rather unexperienced
* 18.05.2013 the array may contain a variety of objects!
**********************************************************************/
alist=.array~new
alist[1]=.addr~new('Boston','MA','51 Franklin Street',,'FSF Inc.',,
'02110-1301')
alist[2]='not an address at all'
alist[3]=.addr~new('Washington','DC','The Oval Office',,
'1600 Pennsylvania Avenue NW','The White House',20500)
Do i=1 To alist~items
a=alist[i]
If a~isinstanceof(.addr) Then
a~show
End
::class addr
::attribute city
::attribute state
::attribute addr
::attribute addr2
::attribute name
::attribute zip
::method init
Parse Arg self~city,,
self~state,,
self~addr,,
self~addr2,,
self~name,,
self~zip
::method show
Say ' name -->' self~name
Say ' addr -->' self~addr
If self~addr2<>'' Then Say ' addr2 -->' self~addr2
Say ' city -->' self~city
Say ' state -->' self~state
Say ' zip -->' self~zip
Say copies('-',40)

View file

@ -0,0 +1,22 @@
declare
[Sqlite] = {Module.link ['x-ozlib:/sqlite/Sqlite.ozf']}
DB = {Sqlite.open 'test.db'}
in
try
{Sqlite.exec DB
"CREATE TABLE address ("
#"addrID INTEGER PRIMARY KEY,"
#"addrStreet TEXT NOT NULL,"
#"addrCity TEXT NOT NULL,"
#"addrState TEXT NOT NULL,"
#"addrZIP TEXT NOT NULL"
#")" _}
catch E then
{Inspector.configure widgetShowStrings true}
{Inspect E}
finally
{Sqlite.close DB}
end

View file

@ -0,0 +1,12 @@
<?php
$db = new SQLite3(':memory:');
$db->exec("
CREATE TABLE address (
addrID INTEGER PRIMARY KEY AUTOINCREMENT,
addrStreet TEXT NOT NULL,
addrCity TEXT NOT NULL,
addrState TEXT NOT NULL,
addrZIP TEXT NOT NULL
)
");
?>

View file

@ -0,0 +1,17 @@
use DBI;
my $db = DBI->connect('DBI:mysql:database:server','login','password');
my $statment = <<EOF;
CREATE TABLE `Address` (
`addrID` int(11) NOT NULL auto_increment,
`addrStreet` varchar(50) NOT NULL default '',
`addrCity` varchar(25) NOT NULL default '',
`addrState` char(2) NOT NULL default '',
`addrZIP` char(10) NOT NULL default '',
PRIMARY KEY (`addrID`)
);
EOF
my $exec = $db->prepare($statment);
$exec->execute;

View file

@ -0,0 +1,20 @@
(notonline)-->
<span style="color: #008080;">without</span> <span style="color: #008080;">js</span> <span style="color: #000080;font-style:italic;">-- (file i/o)</span>
<span style="color: #008080;">include</span> <span style="color: #000000;">pSQLite</span><span style="color: #0000FF;">.</span><span style="color: #000000;">e</span>
<span style="color: #008080;">constant</span> <span style="color: #000000;">sqlcode</span> <span style="color: #0000FF;">=</span> <span style="color: #008000;">"""
CREATE TABLE address (
addrID INTEGER PRIMARY KEY AUTOINCREMENT,
addrStreet TEXT NOT NULL,
addrCity TEXT NOT NULL,
addrState TEXT NOT NULL,
addrZIP TEXT NOT NULL)"""</span>
<span style="color: #000000;">sqlite3</span> <span style="color: #000000;">db</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">sqlite3_open</span><span style="color: #0000FF;">(</span><span style="color: #008000;">"address.sqlite"</span><span style="color: #0000FF;">)</span>
<span style="color: #004080;">integer</span> <span style="color: #000000;">res</span> <span style="color: #0000FF;">=</span> <span style="color: #000000;">sqlite3_exec</span><span style="color: #0000FF;">(</span><span style="color: #000000;">db</span><span style="color: #0000FF;">,</span><span style="color: #000000;">sqlcode</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">if</span> <span style="color: #000000;">res</span><span style="color: #0000FF;">=</span><span style="color: #000000;">SQLITE_OK</span> <span style="color: #008080;">then</span>
<span style="color: #000000;">sqlite3_close</span><span style="color: #0000FF;">(</span><span style="color: #000000;">db</span><span style="color: #0000FF;">)</span>
<span style="color: #008080;">else</span>
<span style="color: #000080;font-style:italic;">-- can show eg "sqlite3_exec error: 1 [table address already exists]"</span>
<span style="color: #7060A8;">printf</span><span style="color: #0000FF;">(</span><span style="color: #000000;">1</span><span style="color: #0000FF;">,</span><span style="color: #008000;">"sqlite3_exec error: %d [%s]\n"</span><span style="color: #0000FF;">,{</span><span style="color: #000000;">res</span><span style="color: #0000FF;">,</span><span style="color: #000000;">sqlite_last_exec_err</span><span style="color: #0000FF;">})</span>
<span style="color: #008080;">end</span> <span style="color: #008080;">if</span>
<!--

View file

@ -0,0 +1,12 @@
(class +Adr +Entity)
(rel nm (+Sn +Idx +String)) # Name [Soundex index]
(rel str (+String)) # Street
(rel zip (+Ref +String)) # ZIP [Non-unique index]
(rel cit (+Fold +Idx +String)) # City [Folded substring index]
(rel st (+String)) # State
(rel tel (+Fold +Ref +String)) # Phone [Folded non-unique index]
(rel em (+Ref +String)) # EMail [Non-unique index]
(rel txt (+Blob)) # Memo
(rel jpg (+Blob)) # Photo
(pool "address.db") # Create database

View file

@ -0,0 +1,6 @@
(show
(new! '(+Adr) # Create a record
'nm "FSF Inc."
'str "51 Franklin St"
'st "Boston, MA"
'zip "02110-1301" ) )

View file

@ -0,0 +1 @@
(select nm zip +Adr nm "FSF") # Select name, zip from Adr where name = FSF*

View file

@ -0,0 +1,33 @@
Import-Module -Name PSSQLite
## Create a database and a table
$dataSource = ".\Addresses.db"
$query = "CREATE TABLE SSADDRESS (Id INTEGER PRIMARY KEY AUTOINCREMENT,
LastName TEXT NOT NULL,
FirstName TEXT NOT NULL,
Address TEXT NOT NULL,
City TEXT NOT NULL,
State CHAR(2) NOT NULL,
Zip CHAR(5) NOT NULL
)"
Invoke-SqliteQuery -Query $Query -DataSource $DataSource
## Insert some data
$query = "INSERT INTO SSADDRESS ( FirstName, LastName, Address, City, State, Zip)
VALUES (@FirstName, @LastName, @Address, @City, @State, @Zip)"
Invoke-SqliteQuery -DataSource $DataSource -Query $query -SqlParameters @{
LastName = "Monster"
FirstName = "Cookie"
Address = "666 Sesame St"
City = "Holywood"
State = "CA"
Zip = "90013"
}
## View the data
Invoke-SqliteQuery -DataSource $DataSource -Query "SELECT * FROM SSADDRESS" | FormatTable -AutoSize

View file

@ -0,0 +1,22 @@
UseSQLiteDatabase()
Procedure CheckDatabaseUpdate(Database, Query$)
Result = DatabaseUpdate(Database, Query$)
If Result = 0
Print(DatabaseError())
EndIf
ProcedureReturn Result
EndProcedure
openconsole()
DatabaseFile$ = GetCurrentDirectory()+"/rosettadb.sdb"
If CreateFile(0, DatabaseFile$)
CloseFile(0)
If OpenDatabase(0, DatabaseFile$, "", "")
CheckDatabaseUpdate(0,"CREATE TABLE address ( addrID INTEGER PRIMARY KEY AUTOINCREMENT, addrStreet TEXT Not NULL, addrCity TEXT Not NULL, addrState TEXT Not NULL, addrZIP TEXT Not NULL)")
CloseDatabase(0)
Else
print("Can't open database !")
EndIf
Else
print("Can't create the database file !")
EndIf
closeconsole()

View file

@ -0,0 +1,11 @@
>>> import sqlite3
>>> conn = sqlite3.connect(':memory:')
>>> conn.execute('''CREATE TABLE address (
addrID INTEGER PRIMARY KEY AUTOINCREMENT,
addrStreet TEXT NOT NULL,
addrCity TEXT NOT NULL,
addrState TEXT NOT NULL,
addrZIP TEXT NOT NULL
)''')
<sqlite3.Cursor object at 0x013265C0>
>>>

View file

@ -0,0 +1,34 @@
/*REXX program creates, builds, and displays a table of given U.S.A. postal addresses.*/
@usa.=; @usa.0=0; $='@USA.' /*initialize array and first value.*/
@usa.0=@usa.0 + 1 /*bump the unique number for usage.*/
call USA '_city' , 'Boston'
call USA '_state' , 'MA'
call USA '_addr1' , "51 Franklin Street"
call USA '_name' , "FSF Inc."
call USA '_zip' , '02110-1301'
@usa.0=@usa.0 + 1 /*bump the unique number for usage.*/
call USA '_city' , 'Washington'
call USA '_state' , 'DC'
call USA '_addr1' , "The Oval Office"
call USA '_addr2' , "1600 Pennsylvania Avenue NW"
call USA '_name' , "The White House"
call USA '_zip' , 20500 /*no need for quotes for a number. */
call USA 'list'
exit /*stick a fork in it, we're all done. */
/*──────────────────────────────────────────────────────────────────────────────────────*/
tell: parse arg a; z=value($||#"."a); if z\='' then say right(translate(a,,'_'),9) "──►" z
return
/*──────────────────────────────────────────────────────────────────────────────────────*/
USA: procedure expose @usa. $; parse arg what; arg ?
if ?=='LIST' then do #=1 for @usa.0
call tell '_name'
do j=1 until z=''; call tell "_addr"j; end
call tell '_city'
call tell '_state'
call tell '_zip'
say copies('', 45)
end /*#*/
else do; call value $ || @usa.0'.'what , arg(2)
call value $ || @usa.0'.upHist' , userid() date() time()
end
return

View file

@ -0,0 +1,35 @@
/* REXX ***************************************************************
* 17.05.2013 Walter Pachl
* should work with every REXX.
* I use 0xxx for the tail because this can't be modified
**********************************************************************/
USA.=''; USA.0=0
Call add_usa 'Boston','MA','51 Franklin Street',,'FSF Inc.',,
'02110-1301'
Call add_usa 'Washington','DC','The Oval Office',,
'1600 Pennsylvania Avenue NW','The White House',20500
call list_usa
Exit
add_usa:
z=usa.0+1
Parse Arg usa.z.0city,,
usa.z.0state,,
usa.z.0addr,,
usa.z.0addr2,,
usa.z.0name,,
usa.z.0zip
usa.0=z
Return
list_usa:
Do z=1 To usa.0
Say ' name -->' usa.z.0name
Say ' addr -->' usa.z.0addr
If usa.z.0addr2<>'' Then Say ' addr2 -->' usa.z.0addr2
Say ' city -->' usa.z.0city
Say ' state -->' usa.z.0state
Say ' zip -->' usa.z.0zip
Say copies('-',40)
End
Return

View file

@ -0,0 +1,50 @@
#lang at-exp racket
(require db)
(define postal (sqlite3-connect #:database "/tmp/postal.db" #:mode 'create))
(define (add! name street city state zip)
(query-exec postal
@~a{INSERT INTO addresses (name, street, city, state, zip)
VALUES (?, ?, ?, ?, ?)}
name street city state zip))
(unless (table-exists? postal "addresses")
(query-exec postal
@~a{CREATE TABLE addresses(
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
street TEXT NOT NULL,
city TEXT NOT NULL,
state TEXT NOT NULL,
zip TEXT NOT NULL)}))
(add! "FSF Inc."
"51 Franklin St"
"Boston"
"MA"
"02110-1301")
(add! "The White House"
"1600 Pennsylvania Avenue NW"
"Washington"
"DC"
"20500")
(add! "National Security Council"
"1700 Pennsylvania Avenue NW"
"Washington"
"DC"
"20500")
(printf "Addresses:\n")
(for ([r (query-rows postal "SELECT * FROM addresses")])
(printf " ~a.\n" (string-join (cdr (vector->list r)) ", ")))
(newline)
(printf "By State+ZIP:\n")
(for ([z (query-rows postal "SELECT * FROM addresses"
#:group #("state" "zip"))])
(printf " ~a, ~a:\n" (vector-ref z 0) (vector-ref z 1))
(for ([r (vector-ref z 2)])
(printf " ~a.\n" (string-join (cdr (vector->list r)) ", "))))
(disconnect postal)

View file

@ -0,0 +1,14 @@
use DBIish;
my $dbh = DBIish.connect('SQLite', :database<addresses.sqlite3>);
my $sth = $dbh.do(q:to/STATEMENT/);
DROP TABLE IF EXISTS Address;
CREATE TABLE Address (
addrID INTEGER PRIMARY KEY AUTOINCREMENT,
addrStreet TEXT NOT NULL,
addrCity TEXT NOT NULL,
addrState TEXT NOT NULL,
addrZIP TEXT NOT NULL
)
STATEMENT

View file

@ -0,0 +1,15 @@
# Project : Table creation/Postal addresses
load "stdlib.ring"
oSQLite = sqlite_init()
sqlite_open(oSQLite,"mytest.db")
sql = "CREATE TABLE ADDRESS (" +
"addrID INT NOT NULL," +
"street CHAR(50) NOT NULL," +
"city CHAR(25) NOT NULL," +
"state CHAR(2), NOT NULL" +
"zip CHAR(20) NOT NULL);"
sqlite_execute(oSQLite,sql)

View file

@ -0,0 +1,10 @@
require 'pstore'
require 'set'
Address = Struct.new :id, :street, :city, :state, :zip
db = PStore.new("addresses.pstore")
db.transaction do
db[:next] ||= 0 # Next available Address#id
db[:ids] ||= Set[] # Set of all ids in db
end

View file

@ -0,0 +1,7 @@
db.transaction do
id = (db[:next] += 1)
db[id] = Address.new(id,
"1600 Pennsylvania Avenue NW",
"Washington", "DC", 20500)
db[:ids].add id
end

View file

@ -0,0 +1,12 @@
require 'sqlite3'
db = SQLite3::Database.new(':memory:')
db.execute("
CREATE TABLE address (
addrID INTEGER PRIMARY KEY AUTOINCREMENT,
addrStreet TEXT NOT NULL,
addrCity TEXT NOT NULL,
addrState TEXT NOT NULL,
addrZIP TEXT NOT NULL
)
")

View file

@ -0,0 +1,10 @@
sqliteconnect #mem, ":memory:" ' make handle #mem
mem$ = "
CREATE TABLE address (
addrID INTEGER PRIMARY KEY AUTOINCREMENT,
addrStreet TEXT NOT NULL,
addrCity TEXT NOT NULL,
addrState TEXT NOT NULL,
addrZIP TEXT NOT NULL
)"
#mem execute(mem$)

View file

@ -0,0 +1,10 @@
PROC SQL;
CREATE TABLE ADDRESS
(
ADDRID CHAR(8)
,STREET CHAR(50)
,CITY CHAR(25)
,STATE CHAR(2)
,ZIP CHAR(20)
)
;QUIT;

View file

@ -0,0 +1,7 @@
CREATE TABLE Address (
addrID Integer generated by default as identity,
addrStreet Varchar(50) not null,
addrCity Varchar(25) not null,
addrState Char(2) not null,
addrZIP Char(10) not null
);

View file

@ -0,0 +1,16 @@
(use sql-de-lite)
(define *db* (open-database "addresses"))
(exec ; create and run the SQL statement
(sql *db*
"CREATE TABLE address (
addrID INTEGER PRIMARY KEY AUTOINCREMENT,
addrStreet TEXT NOT NULL,
addrCity TEXT NOT NULL,
addrState TEXT NOT NULL,
addrZIP TEXT NOT NULL
)"
))
(close-database *db*) ; finally, close database

View file

@ -0,0 +1,17 @@
require('DBI');
var db = %s'DBI'.connect('DBI:mysql:database:server','login','password');
var statment = <<'EOF';
CREATE TABLE `Address` (
`addrID` int(11) NOT NULL auto_increment,
`addrStreet` varchar(50) NOT NULL default '',
`addrCity` varchar(25) NOT NULL default '',
`addrState` char(2) NOT NULL default '',
`addrZIP` char(10) NOT NULL default '',
PRIMARY KEY (`addrID`)
);
EOF
var exec = db.prepare(statment);
exec.execute;

View file

@ -0,0 +1,7 @@
clear
gen str8 addrid=""
gen str50 street=""
gen str25 city=""
gen str2 state=""
gen str20 zip=""
save address

View file

@ -0,0 +1,12 @@
package require sqlite3
sqlite3 db address.db
db eval {
CREATE TABLE address (
addrID INTEGER PRIMARY KEY AUTOINCREMENT,
addrStreet TEXT NOT NULL,
addrCity TEXT NOT NULL,
addrState TEXT NOT NULL,
addrZIP TEXT NOT NULL
)
}

View file

@ -0,0 +1,8 @@
CREATE TABLE #Address (
addrID int NOT NULL Identity(1,1) PRIMARY KEY,
addrStreet varchar(50) NOT NULL ,
addrCity varchar(25) NOT NULL ,
addrState char(2) NOT NULL ,
addrZIP char(10) NOT NULL
)
drop table #Address

View file

@ -0,0 +1,14 @@
Option Explicit
Dim objFSO, DBSource
Set objFSO = CreateObject("Scripting.FileSystemObject")
DBSource = objFSO.GetParentFolderName(WScript.ScriptFullName) & "\postal_address.accdb"
With CreateObject("ADODB.Connection")
.Open "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & DBSource
.Execute "CREATE TABLE ADDRESS (STREET VARCHAR(30) NOT NULL," &_
"CITY VARCHAR(30) NOT NULL, STATE CHAR(2) NOT NULL,ZIP CHAR(5) NOT NULL)"
.Close
End With

View file

@ -0,0 +1,11 @@
CLOSE DATABASES ALL
CREATE DATABASE usdata.dbc
SET NULL OFF
CREATE TABLE address.dbf ;
(id I AUTOINC NEXTVALUE 1 STEP 1 PRIMARY KEY COLLATE "Machine", ;
street V(50), city V(25), state C(2), zipcode C(10))
CLOSE DATABASES ALL
*!* To use
CLOSE DATABASES ALL
OPEN DATABASE usdata.dbc
USE address.dbf SHARED

View file

@ -0,0 +1,106 @@
import "/dynamic" for Enum, Tuple
import "/fmt" for Fmt
import "/sort" for Cmp, Sort
var FieldType = Enum.create("FieldType", ["text", "num", "int", "bool"])
var Field = Tuple.create("Field", ["name", "fieldType", "maxLen"])
class Table {
construct new(name, fields, keyIndex) {
_name = name
_fields = fields
_keyIndex = keyIndex // the zero based index of the field to sort on
_records = []
_fmt = ""
for (f in _fields) {
var c = f.name.count
var l = f.maxLen.max(c)
if (f.fieldType == FieldType.text ||f.fieldType == FieldType.bool) {
l = -l
}
_fmt = _fmt + "$%(l)s "
}
_fmt = _fmt.trimEnd()
}
name { _name }
showFields() {
System.print("Fields for %(_name) table:\n")
Fmt.print("$-20s $4s $s", "name", "type", "maxlen")
System.print("-" * 33)
for (f in _fields) {
Fmt.print("$-20s $-4s $d", f.name, FieldType.members[f.fieldType], f.maxLen)
}
}
cmp_ { Fn.new { |r1, r2|
return (Num.fromString(r1[_keyIndex]) - Num.fromString(r2[_keyIndex])).sign
}}
addRecord(record) {
var items = record.split(", ")
_records.add(items)
Sort.insertion(_records, cmp_) // move new record into sorted order
}
showRecords() {
System.print("Records for %(_name) table:\n")
var h = Fmt.slwrite(_fmt, _fields.map { |f| f.name }.toList)
System.print(h)
System.print("-" * h.count)
for (r in _records) {
Fmt.lprint(_fmt, r)
}
}
removeRecord(key) {
for (i in 0..._records.count) {
if (_records[i][_keyIndex] == key.toString) {
_records.removeAt(i)
return
}
}
}
findRecord(key) {
for (i in 0..._records.count) {
if (_records[i][_keyIndex] == key.toString) {
return _records[i].join(", ")
}
}
return null
}
}
var fields = []
fields.add(Field.new("id", FieldType.int, 2))
fields.add(Field.new("name", FieldType.text, 25))
fields.add(Field.new("street", FieldType.text, 50))
fields.add(Field.new("city", FieldType.text, 15))
fields.add(Field.new("state", FieldType.text, 2))
fields.add(Field.new("zipCode", FieldType.text, 10))
// create table
var table = Table.new("Addresses", fields, 0)
// add records in unsorted order
table.addRecord("2, FSF Inc., 51 Franklin Street, Boston, MA, 02110-1301")
table.addRecord("1, The White House, The Oval Office 1600 Pennsylvania Avenue NW, Washington, DC, 20500")
table.addRecord("3, National Security Council, 1700 Pennsylvania Avenue NW, Washington, DC, 20500")
// show the table's fields
table.showFields()
System.print()
// show the table's records in sorted order
table.showRecords()
// find a record by key
System.print("\nThe record with an id of 2 is:")
System.print(table.findRecord(2))
// delete a record by key
table.removeRecord(1)
System.print("\nThe record with an id of 1 will be deleted, leaving:\n")
table.showRecords()

View file

@ -0,0 +1,2 @@
const NM="address.db";
dbExec(NM,"create table address (street, city, state, zip);");

View file

@ -0,0 +1,16 @@
fcn dbExec(db,qry){ dbErrorCheck(dbMakeQuery(db,qry),String(db," : ",qry)) }
fcn dbMakeQuery(db,qry){
qry=dbEscapeQuery(qry) + ";";
cmd:=String("echo \"", qry, "\" | sqlite ", db);
reg r;
p:=System.popen(cmd,"r");
try{ r=p.readln(*) }catch(TheEnd){} // r==Void if sqlite doesn't print
p.close();
r
}
fcn dbEscapeQuery(qry){ qry.replace(0'|"|, 0'|\"|) }
fcn dbErrorCheck(listOfStrings){
if(listOfStrings and listOfStrings[-1].holds("SQL error"))
throw(Exception.IOError(listOfStrings.concat().strip()));
True
}