Compare commits

...

2 commits

Author SHA1 Message Date
Alex Stevenson
a3fa5d6645 Cleaning up a bit and trying to rework stuff. Need to sort out initializing the DB better... 2025-07-26 18:26:52 -04:00
Alex Stevenson
0c8bd064e3 fixing tabs 2025-07-25 19:14:06 -04:00
3 changed files with 60 additions and 93 deletions

138
main.go
View file

@ -3,23 +3,47 @@ package main
import (
"database/sql"
"log"
"os/exec"
// "reflect"
_ "github.com/mattn/go-sqlite3"
)
)
// Book is a placeholder for book
type Word struct {
word_id int
source_id int
previous string
current string
next string
count int
type active_record interface {
init(string, int) bool
create() bool
read() bool
update() bool
delete() bool
}
type Source struct {
source_id int
name string
type ActiveSqliteRow struct {
id int
table_name string
columns []string
// values map[string]
}
/*
func (r ActiveSqliteRow) init(t string, i int) bool{
log.Print("In init with" + t)
log.Print(i)
r.id = i
r.table_name = t
return true
}
*/
type Entity struct {
id int
user_id int
name string
spawn_line string
}
type User struct {
id int
name string
}
func prep_query(db *sql.DB, q string) (*sql.Stmt){
@ -34,87 +58,15 @@ func prep_query(db *sql.DB, q string) (*sql.Stmt){
}
func main() {
db, _ := sql.Open("sqlite3", "words.db")
// exec setup.sql to init
cmd := exec.Command("sqlite3", "rpgqui.db < sedfsftup.sql")
out, err := cmd.Output()
log.Println("Nuking tables...")
prep_query(db, "DROP TABLE IF EXISTS words").Exec()
prep_query(db, "DROP TABLE IF EXISTS sources").Exec()
log.Println("Done nuking tables!")
if err != nil {
log.Print(err)
} else {
log.Print(out)
}
log.Println("Creating tables...")
prep_query(db, `
CREATE TABLE IF NOT EXISTS sources (
source_id INTEGER PRIMARY KEY,
name VARCHAR(64)
);
`).Exec()
prep_query(db, `
CREATE TABLE IF NOT EXISTS words (
word_id INTEGER PRIMARY KEY,
source_id INTEGER,
previous VARCHAR(64) DEFAULT NULL,
current VARCHAR(64),
next VARCHAR(64) DEFAULT NULL,
count INTEGER DEFAULT 0,
FOREIGN KEY(source_id) REFERENCES sources(source_id)
);
`).Exec()
log.Println("Done making tables!")
log.Println("Making indexes...")
prep_query(db, "CREATE INDEX words_sources_index ON words(source_id)").Exec()
log.Println("Done making indexes!")
log.Println("Inserting source/word...")
prep_query(db, `
INSERT INTO sources
(name)
VALUES
(?)
`).Exec("Monqui")
prep_query(db, `
INSERT INTO words
(current, next, source_id)
VALUES
(?, ?, ?)
`).Exec("My", "name", 1)
log.Println("Inserted the source/word into database!")
rows, _ := db.Query("SELECT source_id, name FROM sources")
var tempSource Source
for rows.Next() {
rows.Scan(&tempSource.source_id, &tempSource.name)
log.Printf("source_id:%d, name:%s\n",
tempSource.source_id, tempSource.name)
}
rows, _ = db.Query("SELECT word_id, current, next, source_id FROM words")
var tempWord Word
for rows.Next() {
rows.Scan(&tempWord.word_id, &tempWord.current, &tempWord.next, &tempWord.source_id)
log.Printf(
"word_id:%d, current:%s, next:%s, source_id:%d\n",
tempWord.word_id, tempWord.current, tempWord.next, tempWord.source_id)
}
// Update
prep_query(db, "UPDATE sources SET name=? WHERE source_id=?").Exec("Monqu2", 1)
rows, _ = db.Query("SELECT source_id, name FROM sources")
for rows.Next() {
rows.Scan(&tempSource.source_id, &tempSource.name)
log.Printf("source_id:%d, name:%s\n",
tempSource.source_id, tempSource.name)
}
//
/*
// Delete
statement, _ = db.Prepare("delete from books where id=?")
statement.Exec(1)
log.Println("Successfully deleted the book in database!")
*/
// db, _ := sql.Open("sqlite3", "words.db")
}

Binary file not shown.

15
setup.sql Normal file
View file

@ -0,0 +1,15 @@
DROP TABLE IF EXISTS users;
DROP TABLE IF EXISTS entities;
CREATE TABLE IF NOT EXISTS users (
id INTEGER PRIMARY KEY,
name VARCHAR(64)
);
CREATE TABLE IF NOT EXISTS entities (
id INTEGER PRIMARY KEY,
user_id INTEGER,
name VARCHAR(64),
spawn_line VARCHAR(64),
FOREIGN KEY(user_id) REFERENCES users(id)
);