Use of Underscores

Colin Putney colin at whistler.com
Fri Aug 23 20:35:03 UTC 2002


On Friday, August 23, 2002, at 12:54  PM, Chris Burkert wrote:

> I only did a test if a connection in general is possible. It all ends 
> in a 'key not found' of a Dictionary that holds the Result of the Query.
>
> ResultSet>>valueNamed: aName
> 	^self valueAt: (columnsByName at: aName)
>
> aName has the value 'foo_bar'. So I think, the Query was successful, 
> but the creation of the Result-Dictionary with the correct name of the 
> Row 'foo_bar' isn't possible. I don't want to change something of the 
> MySQL-Driver (I think we even had to change something in 
> Dictionary) ... perhaps there is a possibility to 'code' the underscore 
> but I don't have any idea.
>
> In general, is it possible to use the underscore in names of keys of 
> Dictionarys ? I don't think so ... why ? Isn't there any way to 
> 'escape' it (... \_ ...) ?

Hmm. I did a similar test without any problems. Here's what I did. First 
I created a database using mysql monitor:

CREATE TABLE test (
   id int(11) default NULL,
   name_test varchar(15) default NULL
) TYPE=MyISAM;

INSERT INTO test VALUES (1,'aName');


Then I executed the following in a Workspace:


spec := JdmConnectionSpec new initialize.
spec
	database: 'TNTest';
	host: (NetNameResolver addressForName: 'trillian.whistler.com');
	user: 'tantalus';
	password: 'demo'.
conn := JdmConnection on: spec.

conn createStatement executeQuery: 'CREATE TABLE test (
   id int(11) default NULL,
   name_test varchar(15) default NULL
) TYPE=MyISAM'.

conn createStatement executeQuery: 'SELECT * FROM test'.

set := conn createStatement executeQuery: 'SELECT * FROM test'.
set next.
set valueAt: 2.
set valueNamed: 'name_test'


Both #valueAt: and #valueNamed: returned the correct result, 'aName'.

Now, I've been hacking on the MySQL-Driver a lot, and it's possible that 
I inadvertently fixed a bug.


Colin Putney
Whistler.com




More information about the Squeak-dev mailing list