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

World: r3wp

[!RebDB] REBOL Pseudo-Relational Database

Henrik
13-Apr-2007
[126]
what about locking?
Pekr
13-Apr-2007
[127x3]
locking? why not? You can distribute ticket :-)
there is the concept called, uh, I forgot, java persistent database, 
few hundred of lines of code ....
Maybe an interesting project? http://sqlrelay.sourceforge.net/
Robert
13-Apr-2007
[130]
Looks interesting. I will see how this works with SQLite & RebService...
Dockimbel
13-Apr-2007
[131]
Pekr, you're thinking about "Prevalence" ? http://www.advogato.org/article/398.html
Pekr
15-Apr-2007
[132]
Doc, yes, it was Prevailer ...
Anton
15-Apr-2007
[133]
Prevayler
Ammon
28-Apr-2007
[134]
Thanks Ashley!  I kind of got distracted from what I was doing, but 
I'm working on it some more and your fixes work.
btiffin
2-Jul-2007
[135]
Ashley;  Can we get rid of the %rebgui.log  and RebDB %.log database 
replay conflict?  I've taken to just deleting the %rebgui.log on 
app startup, which is probably not a good habit.  Preferred would 
be a rename of the database replay logs to something less 'conflicting', 
say .ldb or some such.  .LOG is too easy to trip over during app 
(especially widget) development.  But I'll accept a nice short No, 
too.  :)
Ashley
3-Jul-2007
[136]
db/base-dir: %data/
btiffin
3-Jul-2007
[137]
Thank you sir.  That's a way round.  :)
GiuseppeC
13-Dec-2007
[138]
Hello, I have a question: which are the advantages of SQLLite over 
RebDB ? I have to chose something to lear for my projects.
Ashley
13-Dec-2007
[139]
SQLite supports joins, RebDB doesn't.
SQLite driver requires /PRO, RebDB doesn't.
SQLite is disk-based, RebDB is RAM-based.


I use RebDB for small, simple, single-user apps; and SQLite for larger 
multi-user apps.
GiuseppeC
13-Dec-2007
[140]
Ok, I suppose I will have to learn both. RebDB for very simple projects 
and SQL for large ones. After Christmas I will buy Rebol/Pro and 
when my project will be ready the whole suite.
Michael
20-Jan-2008
[141]
Ashley, what I am doing wrong here? (I'm trying to sum the column 
"distance" below):

SQL> select distance my-table
distance
--------
1
3
7

SQL> select count distance my-table
Count
-----
    3

SQL> select sum distance my-table
script cannot-use
Ashley
20-Jan-2008
[142]
One or more of your values is a string. Check the contents of my-table.dat
Michael
20-Jan-2008
[143]
Of course. I  need to drink more coffee. Thanks, Ashley.
Brock
22-Jan-2008
[144]
Ashley, just noticed the RebDB on your Dobeash website is not the 
latest version.
Ashley
22-Jan-2008
[145]
Check my message above from 13-Apr-2007 ;)
Brock
22-Jan-2008
[146x2]
Gotcha, thanks.   That's actually where I go the link, just didn't 
read far enough to see that it was pre-release.
Thought it was about time I started trying some of the great work 
done by the community and stop relying on the slightly less than 
friendly flat-file data storage I've been using.  RebDB is very interesting 
so far.
JohanAR
14-Mar-2008
[148]
I think it's a little inconvenient that I can't order by a column 
that I'm not selecting. For example "db-select/order [name] mydb 
lasttime" fails :( Is it possible to work around this, so I don't 
have to select both name and lasttime, because it clutters my code?
Ashley
14-Mar-2008
[149]
If RebDB supported this then it would be no more efficient than doing 
it in your own code (i.e. RebDB would have to retrieve the column 
data required to sort on and then go through another process to discard 
it from the result set). Doing this in your own code is usually rather 
simple, as in:

	foreach [col-i-want col-to-discard] RebDB-query [
		do something with col-i-want
	]

or just using 'extract in simpler cases.
JohanAR
15-Mar-2008
[150x3]
no problems.. didn't know about extract so now I'm using that in 
conjunction with random/only :)
I don't think I understand the purpose of "predicate" in db-update, 
where you don't wan't to use /where..
ie anyone wanna explain? :)
btiffin
15-Mar-2008
[153]
That one got me too.  You don't use /where if you are using a key 
value   db-update database field "Value" 3   will hit the first record 
with key 3.   "key "in this sense means first field in the order 
of the column names.  A block without /where would be implied [value-to-compare-to-first-field 
value-to-compare-to-second-field-value...]  It can be a little weird 
when there are duplicates and you don't use secondary keys to filter. 
There is more to it or course.  But I always use /where syntax.  
:)
JohanAR
16-Mar-2008
[154]
thanks alot mate!
Ashley
16-Mar-2008
[155]
The "logic" is that db-update (and db-delete) are logical companions 
to both db-lookup and db-select ... so they have to operate comfortably 
in either mode (key or predicate). It is quite possible to have a 
db that *only* operates in "key" mode and *never* uses predicates! 
;)
JohanAR
16-Mar-2008
[156]
I've only used MySQL a little, and quite a while ago, but I _think_ 
update (without where) affected the entire table there. Could be 
wrong though :)


Anyhow, I really love RebDB (And RebGUI also). It's really easy to 
use, and my program would probably be alot messier if I wrote my 
own data management functions :P
Ashley
16-Mar-2008
[157]
You are correct, with a standard SQL DB a delete or update statement 
without a where clause will affect every row in the table. With RebDB 
you can achieve the same thing by providing a where clause as follows:

	where [rowid > 0]


and for delete operations don't overlook the truncate (or drop) functions.
JohanAR
17-Mar-2008
[158]
Works great.. Thanks!


You know, a really cool feature for RebDB would be to use tables 
stored on an ftp instead of locally. I think it would be possible 
since it's RAM based and you control your commits, but I could be 
wrong :) Now I'll have to sync my database manually every time I 
change computer
btiffin
17-Mar-2008
[159]
RebDB does have a built in client / server mode if that will help. 
  db-client.r  can talk with SQL.r from just about anywhere.  Or 
try  set path  with an ftp url, it may just work, never tried but 
looking at the code and the use of base-dir it seems like a reasonable 
chance of success.
Ashley
17-Mar-2008
[160]
Correct,

	db/base-dir: ftp://user:[pwd-:-ftp-:-site-:-com]/public_html/
	db/lines?: false


The second line will help minimize the amount of traffic by turning 
line breaks off.
JohanAR
17-Mar-2008
[161]
Is it possible to have some tables locally and some on the ftp? Maybe 
I can make a copy of "db" and use it in parallell?
Ashley
17-Mar-2008
[162]
Table location is a global setting, so no. You can run two copies 
of %db.r (with different base-dir settings), but they won't share 
the same memory space.
JohanAR
18-Mar-2008
[163]
That will be good enough for me, since I just want to synchronize 
each row in a table every now and then.
Graham
21-Mar-2008
[164]
This ftp based storage is kind of neat.  I have to update my users' 
tables, and need to provide a script that updates their firebird 
tables.  I can embed the data in the update script, but this sounds 
a much better idea.
PeterWood
5-Sep-2008
[165]
Ashley are you planning to release 2.0.3 as a production version?
PeterWood
6-Sep-2008
[166x2]
I find that the db/base-dir is getting set to the directory from 
which the db.r is loaded.  Is this behaviour intentional?

>> what-dir

== %/Users/peter/Desktop/RebDBTest
/
>> do %~/Code/Library/Rebol/RebDB-202/db.r

Script: "RebDB server" (14-Jan-2006
)
== none

>> what-di
r
== %/Users/peter/Desktop/RebDBTest
/
>> db/base-di
r
== %/Users/peter/Code/Library/Rebol/RebDB-202/
Sorry about the formatting..as you might guess I'm running AltME 
on a Mac.
Ashley
6-Sep-2008
[168]
Same here ... and yes that behaviour is intentional. 2.0.3 is stable, 
it just requires some doc updates. I'll see about releasing it in 
a day or two.
PeterWood
6-Sep-2008
[169]
Thanks no rush on my part.
Ashley
7-Sep-2008
[170]
2.0.3 released. Release notes can be found here:

	http://www.dobeash.com/RebDB/release-notes.html
Louis
7-Sep-2008
[171]
Ashley, which is easiest to use with RebGUI? RebDB or your sqlite.r? 
 Also, how do you decide which one you will use for a particular 
project?
Ashley
7-Sep-2008
[172]
Depends on how much data and how much complexity you need. RebDB 
is good for under a million rows where the column data is short (i.e. 
not storing 1MB strings). SQLite is a better choice for lots/big 
rows or where you need non-trivial joins/views. I'd use RebDB for 
simple apps like a "Contacts" DB, and SQLite for anything requiring 
half a dozen or more tables.
Louis
8-Sep-2008
[173]
Ok, thanks. That make the choice easier.
btiffin
8-Sep-2008
[174]
Whoa.  2.0.3; that was a pleasant surprise.  Thanks Ashley.
Claude
7-Oct-2008
[175]
hi,  how a can do a select with "like "     =>  select * from table 
 where name like 'RA%'