r3wp [groups: 83 posts: 189283]
  • Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r3wp

[MySQL]

Henrik
10-Mar-2006
[617]
I'm not sure how to do that... I 'insert a query to a port and 'copy 
the result back out from that port... I can't control that, can I?
Anton
11-Mar-2006
[618x2]
So if your code looks like this:
	insert port sql-query
	result: copy port
What does result contain ?
(I suspect we are talking about COPY in different places. I don't 
mean the COPY from the port.)
Henrik
11-Mar-2006
[620]
fixed it! I'm not sure exactly how it works, because I do really 
copy the value to 'result like you describe, but the variable is 
local to a function. a CLEAR RESULT after RESULT: COPY PORT solved 
it

thanks for the tip :-)
Anton
11-Mar-2006
[621x3]
Great !  but... you haven't told me what result contains. Is it a 
string ?
Ahh... also show me what the function looks like. Is it like this:
	func [
		/local result
	][
		insert port sql-query
		result: copy port
	]
Remember that COPY actually calls the COPY function in the scheme 
handler. (probably, I haven't looked at MySQL scheme).
Therefore maybe what you want is actually:

	result: copy copy port


The theory being that the first COPY provides you with the result 
string from inside the scheme handler (but the scheme still hangs 
on to it), and the second COPY works as usual in rebol (actually 
makes a copy).
Dockimbel
11-Mar-2006
[624]
Couldn't reproduce the bug...When an empty set is returned, the driver 
returns an literal empty block! value. This shouldn't be an issue 
as long as you don't modify the returned value. Anyway to avoid such 
side effect, the driver now return a fresh new block!.
Henrik
11-Mar-2006
[625]
dockimbel: I think it only returned an incorrect block after doing 
an SQL insert operation. when doing normal select queries it would 
return an empty block! where it should, but after using SQL insert, 
empty blocks contained old values
Dockimbel
11-Mar-2006
[626x2]
I tried several tests, but it works well, no issue :
>> insert db "insert into regions values ('556', 'test')"
== none
>> insert db "select * from empty"
== none
>> probe copy db
[]
Henrik
11-Mar-2006
[628]
which mysql version? I've only seen it on 4.1 and up
Dockimbel
11-Mar-2006
[629]
4.0.16
Henrik
11-Mar-2006
[630]
the copy copy thing fixes it for 5.0, it seems
Dockimbel
11-Mar-2006
[631x2]
Ok, will try to reproduce that with a 5+ version
Just tried with v5.0.19, no problem :
Henrik
11-Mar-2006
[633]
is that with the fix?
Dockimbel
11-Mar-2006
[634]
>> db: open mysql://[root-:-localhost]/test
>> insert db "insert into regions values ('557', 'test')"
== none
>> insert db "select * from empty"
Yes, let me try without it
Henrik
11-Mar-2006
[635]
maybe it needs to get "dirty" with a few selects first... I don't 
know
Dockimbel
11-Mar-2006
[636x3]
Tried with several SELECT clauses, tried using partial reading with 
copy/part, still no problem...
With or without using a fresh block! value for empty set
Do you have a small example that doesn't work for you ?
Henrik
11-Mar-2006
[639]
I'll see if I can figure something out...
Henrik
13-Mar-2006
[640]
sorry, I can't make a simple example right now. no time. :-(
PeterWood
29-Mar-2006
[641x3]
I'm getting the Error 1043 Bad Handshake problem accessing My-SQL 
5.0.18 on Windows/XP using mysql-protocol.r via  localhost: that 
Alain Goyé reported on the mailing list:

>> db: open mysql://root:?@localhost/fundamentals
Password: *********
connecting to: localhost
>> insert db "SELECT * FROM books"
** User Error: ERROR 1043 : Bad handshake
** Near: insert db "SELECT * FROM books"

It works fine from another machine over the LAN.
Any pointers on how to overcome this?
Sorry, it's a password related problem that I can duplicate remotely. 
Further investigation needed.
yeksoon
29-Mar-2006
[644]
try changing the  Privileges to 'No password' for the user and see 
if the error still exists?
PeterWood
29-Mar-2006
[645x2]
Works fine .
I've just realised that I' have old_passwords set on and am using 
the latest version of Mysql-protocol.r :-(
Pekr
29-Mar-2006
[647x3]
it should work too though ...
it should distinguish, if the password is old or new style ....
but not sure, maybe Doc removed the "old" functionality, although 
I doubt it ...
PeterWood
29-Mar-2006
[650x2]
I solved the problem by installing the 0.99 version of mysql-protocol.r. 
It was quicker than trying to get XAMPP to accept a MySQL revised 
configuration file.
Thanks for your help, Yek Soon and Petr.
james_nak
30-Mar-2006
[652]
What do you all use to check if a port is open? Instead of getting 
a port not open when trying to read the "inserted" SQL results. RIght 
now I'm using error? try [ a: copy db] where db is the object with 
the results. I don't know, it doesn't seem to work all that well.
Thør
1-Apr-2006
[653]
.
Will
26-Apr-2006
[654x2]
addad "s" to below line in mysql-protochol.r otherwise "s" get set 
in global space

b0: b1: b2: b3: int: int24: long: string: field: len: byte: s: none
read-field: [
		(null-flag: false)
		read-length s: (either null-flag 
[field: none]
			[field:	sys-copy/part s len s: skip s len]) :s
	]
Dockimbel
8-May-2006
[656x2]
james: use the 'ping command: insert db [ping] (see driver documentation 
for more info on this command).
Will: thanks, fix added.
Maarten
8-May-2006
[658x2]
Doc, will there be a new version of the mysql driver somewhere punlicly 
available? I get a can't connect on softinnov.org?
*publicly
Dockimbel
8-May-2006
[660x2]
This one should work : http://softinnov.net/tmp/mysql-protocol.r
still beta, need some more testing to make it 1.0
Henrik
3-Jun-2006
[662]
the link is dead
Dockimbel
3-Jun-2006
[663]
http://softinnov.org/tmp/mysql-protocol.r
Henrik
3-Jun-2006
[664]
was the bad handshake problem ever solved? I'm getting it here.
Dockimbel
3-Jun-2006
[665]
Workaround found for v4+ servers version, still testing for v3.x 
 versions.
Henrik
3-Jun-2006
[666]
so no hope for 5.0 just yet?