Today's Smalltalk 4 You looks at parameterized queries against a database using VA Smalltalk. If you have trouble viewing it here in the browser, you can also navigate directly to YouTube. To watch now, click on the image below:
You can also watch it on YouTube:
Today we'll look at parameterized queries against a relational database using VA Smalltalk - to see how to connect, please go back to this tutorial, as we are building on it here. As you probably expect, you'll need to set up a connection, and then a mapping dictionary:
"Example - insertFromScript - parameter markers" queryStatement := 'INSERT INTO PEOPLE (NAME, STREET,CITY,STATE,ZIPCODE,PHONE) VALUES (:PNAME, :PSTREET,:PCITY,:PSTATE,:PZIPCODE,:PPHONE)'. qSpec := AbtQuerySpec new statement: queryStatement; yourself. dict := Dictionary new. dict at: 'PNAME' put: 'Fred Flintstone'; at: 'PSTREET' put: 'Paleozoic Way'; at: 'PCITY' put: 'Rubble City'; at: 'PSTATE' put: 'AN'; at: 'PZIPCODE' put: 23456; at: 'PPHONE' put: '890-123-4567'.
If you think about that for a moment, it will become clear how easy it would be to set up a "mini framework" that maps simple objects to database tables; we have one that follows this pattern (using VisualWorks, but it's the same idea) where I work. Make sure you commit the statement:
"commit it" connection commitUnitOfWork.
Next, look at the two screen captures - we have a query before the code above ran, and then another one after it:
Need more help? There's a screencast for other topics like this which you may want to watch. Questions? Try the "Chat with James" Google gadget over in the sidebar.
[st4u149-iPhone.m4v ( Size: 4230679 )]