aboutsummaryrefslogtreecommitdiff
path: root/v_windows/v/examples/database/psql/customer.v
diff options
context:
space:
mode:
Diffstat (limited to 'v_windows/v/examples/database/psql/customer.v')
-rw-r--r--v_windows/v/examples/database/psql/customer.v63
1 files changed, 63 insertions, 0 deletions
diff --git a/v_windows/v/examples/database/psql/customer.v b/v_windows/v/examples/database/psql/customer.v
new file mode 100644
index 0000000..4538a94
--- /dev/null
+++ b/v_windows/v/examples/database/psql/customer.v
@@ -0,0 +1,63 @@
+module main
+
+import pg
+
+const dash = '----------------------------------------------------------------'
+
+struct Customer {
+ id int
+ name string
+ nr_orders int
+ country string
+}
+
+fn main() {
+ /*
+ db := pg.connect(pg.Config{
+ host: 'localhost' //'127.0.0.1'
+ user: 'postgres'
+ dbname: 'customerdb'
+ }) or {
+ println('failed to connect')
+ println(err)
+ return
+ }
+
+ nr_customers := db.select count from Customer
+ println('Total customers: $nr_customers')
+
+ // V syntax can be used to build queries
+ println(dash)
+ bg_country := 'Bulgaria'
+ bg_customers := db.select from Customer where country == bg_country && id != 2
+ for customer in bg_customers {
+ println('$customer.country | $customer.id - $customer.name')
+ }
+
+ println(dash)
+ ru_customers := db.select from Customer where country == 'Russia'
+ for customer in ru_customers {
+ println('$customer.country | $customer.id - $customer.name')
+ }
+
+ // by adding `limit 1` we tell V that there will be only one object
+ println(dash)
+ existing := db.select from Customer where id == 1 limit 1 or { panic(err) }
+ println('Existing customer name: $existing.name')
+ println('Existing customer full information:')
+ println(existing)
+
+ println(dash)
+ q := Customer{}
+ // It's easy to handle queries that don't return any data
+ if anon := db.select from Customer where id == 12345 && name == q.name &&
+ nr_orders > q.nr_orders limit 1 {
+ println('Non existing customer name: $anon.name')
+ }
+ // Insert a new customer
+ nc := Customer{
+ name: 'John Doe'
+ nr_orders: 10
+ }
+ db.insert(nc)*/
+}