• Home
  • Script library
  • AltME Archive
  • Mailing list
  • Articles Index
  • Site search
 

World: r4wp

[Databases] group to discuss various database issues and drivers

GiuseppeC
16-May-2012
[156]
About RebDB:
Is there a way to update multiple fields at the same time ?
I read in the documentation:

db-update/where my-table id 0 [id < 6]

This sets only one filed.
Endo
16-May-2012
[157x2]
In rebdb.r file, db-update function takes columns parameter as word! 
or block! and says "Columns to set".
So I think it supports updating multiple columns at once.
db-update/where my-table [id colA colB] [0 "a" "b"] [id < 6] ;works
GiuseppeC
17-May-2012
[159x3]
I have also read the 2.0.4 version supports JOINs but there is no 
example how to use it with db-* style commands
Do you know the way ?
I whish to use ODBC to manipulate ACCESS 2007 databases.

Where I could find some documentation about REBOL and ODBC and ODBC 
itself ?
Endo
17-May-2012
[162]
Well, I didn't use it much, but I this works:

;create table tbl [a b c]
>> db-insert tbl [1 2 3]
>> db-select/joins [a b c] tbl [select [a c] from tbl] b
== [1 2 3 1 3]
GiuseppeC
17-May-2012
[163x2]
Thanks Endo
Your are very helpful to me
Endo
17-May-2012
[165]
for ODBC:
http://www.rebol.com/docs/database.html
http://www.connectionstrings.com
GiuseppeC
17-May-2012
[166]
Yes, reading about REBOL. I was to quicky.
Endo
17-May-2012
[167]
Well, the whole community was very helpful to me, now I'm trying 
be.
GiuseppeC
17-May-2012
[168]
I have read in the REBOL3 world about incompatibility with ODBC in 
the latest icarnations. Do you know anything about this ?
Endo
17-May-2012
[169x2]
I still use R2, didn't use R3 yet. Just a few tests etc.
As I know, there is no direct ODBC support in R3, but there is an 
ODBC extension which is stable if I'm not mistaken.
GiuseppeC
17-May-2012
[171]
I meant "in the latest icarnations of ODBC"
Endo
17-May-2012
[172]
BrianH and Kaj can answer more correctly about R3 && ODBC.
GiuseppeC
17-May-2012
[173]
R2 and ODBC
Endo
17-May-2012
[174x2]
R2 & ODBC is quite stable & useful.

There are just a few small problems which can be solved some work 
arounds.
such as, R2 doesn't support new SQL Server datatypes. You should 
CAST & CONVERT your values in your SQL to be able to get those values 
into R2 app.
BrianH
18-May-2012
[176x2]
I don't know about the datatype support when connecting to Access 
2007 databases; what Endo said was related to SQL Server. However, 
I have Access 2010 here and 2007 at home so I can run some tests 
later today if you like.
R2 is more ambitious about datatype conversion than the R3 extension, 
which only handles SQL datatypes that are directly compatible with 
64bit or smaller R3 datatypes. However, R2 doesn't handle floating-point 
datatypes, and R3 does.
Endo
18-May-2012
[178]
I've used Access 2007 with R2, I didn't see a problem. Not sure about 
the supported datatype. I usually use old/standard/simple SQLs.
BrianH
18-May-2012
[179x4]
Weirdly enough, the datatypes that R2 doesn't support in newer SQL 
Server versions are the ones that were added to make SQL Server *more* 
standard. It supports the old, non-standard ones just fine.
I get tripped up by missing datatype support with the R3 extension 
a lot more than with R2. Converting from numeric to float is one 
thing - iffy, but at least you can do it; converting from varchar(max) 
or text to varchar is often impossible without data loss.
Had to do more than one project with scripts that call themselves 
in R2 to do data extraction from text fields, then call themselves 
in R3 to do processing.
Good thing the R3 extension is open-source. Given time to work on 
it, we can improve its datatype support :)
Pekr
21-Jul-2012
[183x3]
After some time, I gave a try to the Sqlite DB. It kind of improved 
in some areas, even locking, so it is even more useable in concurrent 
environment. However - it still uses per file lock, and although 
it uses just milliseconds to lock the file, I have a problem with 
one aproach I am trying to take, and hence maybe the Sqlite is not 
right DB for my purpose, or my aproach is not correct. The reason 
why I wanted to use sqlite DB is, that it is easily movable to other 
target, and its performance is fine for even semi heavy solutions. 
I don't want to be dependant upon the some kind of "server", which 
stores its files who knows where, and to which I don't have proper 
access in cgi environment, unless I am a DB admin or server admin 
...
Simply put - millisecond lock time is enough fine grained for my 
purposes, but - let's assume you have several ppl working on some 
customer list, where each customer has some orders. Those ppl do 
select particular customer, and work with orders. What I want is 
- when some user selects particular customer, I need its record being 
locked. The trouble is, that when I use BEGIN transaction for sqlite, 
it locks all the file, and does not allow other process to do write 
to the DB.


I wonder, if I can somehow obey it, not really having per record 
locking. I would have to implement my own lock mechanism (not locking 
in fact), not allowing others select/enter customer record, when 
some other person is working on it?
Or simply I have to use more powerfull SQL solution, but heck, I 
don't like all the heave SQL servers for some simple few tables solution 
....
Endo
28-Aug-2012
[186]
It's interesting when I try to connect using a port scheme I cannot 
get error msg:

>> con: open [scheme: 'odbc target: "..."] ;try with wrong password 
for example
** Script Error: ODBC error:

>> con: open odbc://sa:[qwe1234-:-mydsn]

** Script Error: ODBC error: [Microsoft][SQL Server Native Client 
10.0][SQL Server]Login failed for user 'sa'.  <<< now I got error 
msg.

Any idea how to get "real" error message?
ChristianE
29-Aug-2012
[187]
Shouldn't that rather be HOST instead of TARGET?
>> con: [scheme: 'odbc host: "mydsn"]
BrianH
29-Aug-2012
[188x3]
Only if the target is a DSN with no other settings specified. Otherwise, 
use target.
con: [scheme: 'odbc target: "dsn=mydsn"]
For instance, this is a common connection I use at work (server name 
changed):

conn: [scheme: 'odbc target: "driver=SQL Server Native Client 10.0;server=SERVER1;database=db1;Trusted_Connection=Yes;"]
ChristianE
5-Sep-2012
[191]
I've just updated the R3 ODBC Extension to work with more SQL types 
and, with the support of BrianH, fixed and improved the boot code 
OPEN and COPY actors.


The extension is available over at Github in both source form as 
well as a DLL compiled for windows, see https://github.com/gurzgri/r3-odbc
GrahamC
5-Sep-2012
[192]
dll compiled means use from R2?
Kaj
5-Sep-2012
[193]
It's an R3 extension. You could load it in R2, but you'd have to 
program the interface to the extension yourself
Gregg
8-Sep-2012
[194x3]
Is anyone using Doc's MySql protocol (v4.1 1.3.0) with MySql 5.5.24-cll, 
protocol v10? 


I have a client migrating to a new host. We've been using 1.2.1 against 
mysql 5.0.95, but 5.5 triggers the client auth error. Moving to Doc's 
4.1 version solved that, but a simple test query returns an empty 
block. 


Can't rule out a data migration error yet, as things just moved and 
getting connected was the frist step. Just curious if someone is 
known to have this combo working.
Nevermind. I was able to test another query which works, so all is 
well there. Thanks Doc, once again!
The failing query was a data migration issue, just FYI.
Janko
9-Sep-2012
[197x2]
I just upgraded local ubutu and I made the rebol work with ia32-libs 
again, now rebol mysql client is givin me auth error
Gregg: what did you say you did to make it work? what did you move 
to 4.1 the mysql server or something else?
DocKimbel
9-Sep-2012
[199]
Janko: if you're using a newer MySQL version, you need my 4.1 driver.
Janko
9-Sep-2012
[200x2]
aha, I hoped he meant that :) , but I only found 1.2.1 on your website
I am looking at this page http://softinnov.org/rebol/mysql.shtml
(google doesn't find me any ohter, I think)
DocKimbel
9-Sep-2012
[202x2]
It's not an official release yet...I wish I had time to finish it...:-/
IIRC, it was missing some minor feature support from the protocol 
and good new test cases...
Janko
9-Sep-2012
[204]
well if it works for what I need it it's ok with me (I just use mysql 
for user db so it's rather simple). I found mention of it here now 
http://rebolweek.blogspot.com/2008_12_01_archive.htmlis this the 
latest version you have?
DocKimbel
9-Sep-2012
[205]
http://softinnov.org/tmp/mysql-protocol-41.r