Hi Peter, Thank you so much for the detailed info!
Each value has single quotes now but it would be nice to do it without quotes as adding them takes more time. I will definitely use th BEGIN statement and thank you for explaining it. I tried to use revCommitDatabase after the repeat without the BEGIN and it was missing a file. Your way will be a lot better and I will include the error checking too. I really do not know that much about using a database so if things look weird it is due to me not knowing what I am doing. I tried to go to your site and look at the stack you have for sql database administration but I got a 404 error. Does it include code to sort and find with SQL? If so I am interested. Thanks again! John Balgenorth On Mar 24, 2015, at 6:52 PM, Peter Haworth <p...@lcsql.com> wrote: > Hi John, > A few ideas for you. > > You should issue a BEGIN statement right before your repeat statement and > move your revCommitDatabase to right after the end repeat. Better > performance and guarantees db integrity. > > For some reason I don't understand, LC does not have a revxxx statement to > issue a BEGIN so you will need to use revExecuteSQL gConID,"BEGIN" right > before the repeat statement. > > Within the repeat, don't forget to check if revExecuteSQL resulted in any > errors by checking "the result" right after it - it will be a numeric value > if all worked OK, otherwise an error message. If an error occurs, issue a > revRollBackDatabase command and exit the repeat. That will return your > database to a consistent state before any of your INSERTs happened. > > I'm a little confused by your INSERT statement. You name 4 columns in the > table but only supply 2 values, maybe tLine has comma separated values in > it? If so, you will need to enclose each value in single quotes if they are > not numeric. > > Also, if recID is the primary key, no need to include it in the list of > columns to be updated or supply a value for it, SQL will take care of that > for you. > > Hope that helps, > > On Tue, Mar 24, 2015 at 5:04 PM JB <sund...@pacifier.com> wrote: > >> I am using MySql on a local host and >> creating a database then adding records. >> After creating the table I was using the >> handler below to add records. I was not >> using the revCommitDatabase gConID >> statement after each record and some >> times my database would be missing >> one or two records. After including the >> revCommitDatabase gConID statement >> it appears to be including them all. Is >> this the proper and fastest way to add >> records in a sql lite database or should >> I be using something else like a query >> to update instead? >> >> on fAddFiles >> set the itemDelimiter to tab >> put fld id 5246 of cd id 5187 into tList >> repeat for each line tLine in tList >> put "INSERT INTO tFiles(recID,field2, field3, field4) VALUES(null," >> & tLine & ")" into sqTable >> revExecuteSQL gConID,sqTable >> revCommitDatabase gConID >> end repeat >> fRefresh >> gConIDClose >> end fAddFiles >> >> Any information or ideas are helpful. >> >> John Balgenorth >> _______________________________________________ >> use-livecode mailing list >> use-livecode@lists.runrev.com >> Please visit this url to subscribe, unsubscribe and manage your >> subscription preferences: >> http://lists.runrev.com/mailman/listinfo/use-livecode >> > _______________________________________________ > use-livecode mailing list > use-livecode@lists.runrev.com > Please visit this url to subscribe, unsubscribe and manage your subscription > preferences: > http://lists.runrev.com/mailman/listinfo/use-livecode > _______________________________________________ use-livecode mailing list use-livecode@lists.runrev.com Please visit this url to subscribe, unsubscribe and manage your subscription preferences: http://lists.runrev.com/mailman/listinfo/use-livecode