 |
[6 * 9 = 42] whileTrue: [World run]
Stopařův průvodce jedním převážně neškodným programovacím jazykem
|
 |
|
MySQL
Konektivity na databázi MySQL je řešena pomocí driveru, který naleznete zde:
http://map1.squeakfoundation.org/sm/package/231bd227-d947-4118-bce1-bfb8f4649f58
Tento driver využívá připojení prostřednictvím socketů. Pro jeho běh ve verzi 3.6 je třeba opravit metodu
JdmConnection>>initializeConnection
| a |
packetClass _ JdmInputPacket.
a _ self class protocolHashes.
(hashesByProtocol _ Dictionary new)
at: (a at: 1) put: (a at: 2);
at: (a at: 3) put: (a at: 4).
socket _ Socket new
connectTo: (connectionSpec host)
port: (connectionSpec port).
socket waitForConnectionFor: Socket standardDeadline.
readStream _ writeStream _ SocketStream on: socket.
serverInfo _ JdmServerInfo on: self.
serverInfo serverVersion >= self class largeSizesVersion
ifTrue: [packetClass _ JdmLargeSizeInputPacket].
clientCapabilities _ serverInfo protocol = 10 ifTrue: [1] ifFalse: [0]
MySQL (v současné stabilní verzi) nepoužívá Unicode!
Příklad
Socket initializeNetwork.
spec := (JdmConnectionSpec new initialize
user: 'root'; password: '';
host: (NetNameResolver addressForName: 'localhost');
database: 'test';
port: 3306).
connection := JdmConnection on: spec.
statement := connection createStatement.
resultSet := statement executeQuery: 'select * from testtable'.
"resultSet inspect"
"Jmena sloupcu"
Transcript cr; show: (resultSet columns collect: [:col | col name]) asString.
[resultSet next] whileTrue:
[
value := resultSet valueNamed: 'Name'. "hodnota sloupce Name"
Transcript cr; show: value printString.
].
connection close.
Odkaz na tuto stránku
|
|