Hi, this may not be entirely on-topic to this list, apologies for that; (But since I am (currently) using Lazarus 0.9.28.2 r22279 FPC 2.2.4, (and planning to upgrade to latest stable 0.9.30/2.4.something /windows/ installer distribution), the offtopic is somehow diminished)
I looked up http://wiki.lazarus.freepascal.org/ODBCConn, http://wiki.lazarus.freepascal.org/Databases, read http://wiki.lazarus.freepascal.org/Lazarus_DB_Faq so far, I recreated and run successfully the example (the one with dbgrid) from http://www.lazarus.freepascal.org/index.php?topic=3329.0, on an existing database; (yes the UsePrimaryKeyAsKey is unsupported in ODBC, TSQLQuery has to have that set as false otherwise ODBC driver throws errors) As at some point I will have to use other (say Firebird) access without using visual components, I am trying to explore as much as possible with RAD... I never used the OOP approach to database programming before, hence I feel like I am trying to do a second step before doing the first... Where can I find some absolute beginners guide to OOP database (well maybe not /that/ absolute but answering questions like - what's the idea behind the splitting the database access into Connection, Query, Transaction and DataSource? Or some actually /helpful/ examples of reading, writing, updating, deleting etc. data using this paradigm) I mean I can see what it does but I feel like I'm not entirely in control of what happens at which stage... and that's disturbing :) What I know so far is like showing a 'Hello World' program to a beginner, and expecting he'll be absolutely _stunned_ at the beauty and simplicity of it, but the beginner goes "oh what the heck, this just spits 'Hello World' on your screen, I don't get it what's the whole fuss about...? And what /exactly/ is this supposed to demonstrate to me?" (I'm slightly more familiar with microcontroller programming, in case somebody thinks I'm totally ignorant...) ( Now for more on-topic: I have a testing app using one of the examples as the base of it, the one with dbgrid: procedure TForm1.Button1Click(Sender: TObject); begin if Label1.Caption = 'ODBC Disconnected' then if OpenDialog1.Execute then begin ODBCConnection1.Params.Add('DBQ='+OpenDialog1.FileName); // ODBCConnection1.Open; SQLQuery1.SQL.Clear; SQLQuery1.SQL.Add('SELECT * FROM MyTable'); SQLQuery1.Open; // SIGSEGV when calling a second time exit; end; if Label1.Caption = 'ODBC Connected' then begin SQLQuery1.Close; ODBCConnection1.Close; exit; end; end; So I can actually point to the MDB file I want to look into, but then, when I close it (using the SQLQuery.Close part of the above), and then try to open it again (using the first part again) I get a 'External: SIGSEGV' at the SQLQuery1.Open; call. (This happens regardless of whether I have the SQLQuery.Close call for the closing case or not) ? ) (Hope I did not bore everybody yet...) Thanks in advance, Lukasz -- _______________________________________________ Lazarus mailing list [email protected] http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus
