"jose isaias cabrera" wrote... > > Greetings. My apologies for the lengthiness... > > We are running an utility with about 5 clients using two DBs: > 1. PrimaryPC > 2. Shared folder > > The PrimaryPC contains the original data and changes, while the SharedDB > in > the Shared Folder is the one that provides original indexing of those > records. There are no duplicate indexes. When a new records is open, the > SharedDB provides the index and so, no two users will ever have the same > record and will never update the same record. > > The SharedDB is the one that provides information about other users' > records > to the other folks and so, an UpdateDB function was created to push > updates > to the SharedDB from the PrimaryPC. > > I will throw one more wrench in the motor... We have SharedPCs that when > users login will bring the data of that users from the SharedDB to this > SharedPC and thus the user can see his/her records and work without any > problem. However, the UpdateDB function does not work from a SharedPC > because it is not the PrimaryPC of the user. > > The Update was working fine (and works fine this way) because I would > attach > to the SharedDB and push all the records of the user to the SharedDB. > But, > as the number of records grew, the it would take 20-30 seconds and > sometimes > we find ourselves locking the SharedDB longer than needed. > > I added a new column, XtraB, (Don-t ask), which changes every time a > record > is edited and saved with the value 'yyyy-mm-dd hh:mm:ss'. I am trying to > change the UpdateDB function to only push the records that have been saved > in the PrimaryPC. Here is my programming steps that are not working: > > dba = new SqliteDatabase(sqldba); //connect to the SharedDB. Works. :-) > > q = "ATTACH '" ~ sqldb ~ "' AS client; "; // sqldb is the path to the > local > PC. Works. > > q = "BEGIN;"; > q ~= "REPLACE INTO LSOpenProjects > SELECT * FROM client.LSOpenProjects > WHERE login)='" ~ pm["login"] ~ "' AND XtraB < client.XtraB; "; > q ~= "COMMIT;"; > > The above is not working... Yes, I am a newbie. Well, kinda, > nonetheless, > yes. > > What I would like to do is to push all the records that have a higher date > ('yyyy-mm-dd hh:mm:ss') in the local DB than the SharedDB. They should > really be equal, if no changes have been made. > > And then, the wrench in the motor is to bring from the sharedDB to the > SharedPC the records that are also with newer dates then the previously > brought from the SharedDB. I have something like above, > > SqliteDatabase dbu = new SqliteDatabase(sqldb); > > q = "ATTACH '" ~ sqldba ~ "' AS c; "; // works > > q = "BEGIN;"; > q ~= "INSERT OR REPLACE INTO LSOpenProjects > SELECT * FROM c.LSOpenProjects > WHERE login='" ~ pm["login"] ~ "' AND c.XtraB > XtraB; "; > q ~= "COMMIT;"; > > Not working either. Any help would be greatly appreciated. > > thanks, > > josé
Never mind about this... I worked around it. thanks, josé _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users