World: r3wp
[MySQL]
older newer | first last |
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? |
older newer | first last |