43 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Factor
		
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Factor
		
	
	
| ! You will need to run  'createdb factor-test' to create the database.
 | |
| ! Set username and password in  the 'connect' word.
 | |
| 
 | |
| IN: postgresql-test
 | |
| USING: kernel postgresql alien continuations io prettyprint
 | |
| sequences namespaces ;
 | |
| 
 | |
| 
 | |
| : test-connection ( host port pgopts pgtty db user pass -- bool )
 | |
|     [ [ ] with-postgres ] catch "Error connecting!" "Connected!" ? print ;
 | |
| 
 | |
| ! just a basic demo
 | |
| 
 | |
| "localhost" "" "" "" "test" "postgres" "" [
 | |
|     "drop table animal" do-command
 | |
| 
 | |
|     "create table animal (id serial not null primary key, species varchar(256), name varchar(256), age integer)" do-command
 | |
|     "insert into animal (species, name, age) values ('lion', 'Mufasa', 5)"
 | |
|     do-command
 | |
| 
 | |
|     "select * from animal where name = 'Mufasa'" [ ] do-query
 | |
|     "select * from animal where name = 'Mufasa'"
 | |
|     [
 | |
|         result>seq length 1 = [ "...there can only be one Mufasa..." throw ] unless
 | |
|     ] do-query
 | |
| 
 | |
|     "insert into animal (species, name, age) values ('lion', 'Simba', 1)"
 | |
|     do-command
 | |
| 
 | |
|     "select * from animal" 
 | |
|     [
 | |
|           "Animal table:" print
 | |
|           result>seq print-table
 | |
|     ] do-query
 | |
| 
 | |
|     ! intentional errors
 | |
|     ! [ "select asdf from animal"
 | |
|     ! [ ] do-query ] catch [ "caught: " write print ] when*
 | |
|     ! "select asdf from animal" [ ] do-query 
 | |
|     ! "aofijweafew" do-command
 | |
| ] with-postgres
 | |
| 
 |