On Wed, Sep 13, 2017 at 2:55 AM, Peter Otten <__pete...@web.de> wrote:
> boB Stepp wrote:

>>
>> And these would be the SQL commands/statements I would have
>> cursor.execute use from the sqlite3 module.  They would be different
>> depending on which database product I was using.  Am I horribly
>> misunderstanding something???  And if not, I have several other
>> apparently fundamental SQL examples where similar situations exist
>> based on the book on SQL I am only 43 pages into!
>
> Life is hard ;)

And I was so badly hoping to achieve SQL nirvana!  ~(:>))

> While the specific problem can be worked around by performing the
> concatenation in Python
>
> cs.execute("select firstname, lastname from sales;")
> for firstname, lastname in iter(cursor.fetchone, None):
>     print("{} {}".format(firstname, lastname))

Yeah, this just reinforces Alan's points.

> at some point you will need to write database specific SQL or delegate that
> task to a library -- sqlalchemy was already mentioned. I suspect that you
> will then end up learning both the SQL dialects and the ORM API...

I maybe did not realize the full import of Albert-Jan's suggestion
then.  Will sqlalchemy (Or a similar product.) totally abstract away
these annoying SQL variations amongst db vendors?

> Personally I would start with a single database, try to achieve a clean
> structure and good unit test coverage -- and worry about generalisation
> later.

I've decided I'm going even simpler than the chess ratings project.
I've been lately taking lots of blood pressure readings lately
(Stressed out from all my efforts at Python, y'know!).  I think the
data will fit nicely in A SINGLE TABLE -- date, time of day, BP
reading, and a comments field.  I will apply TDD, OOP, sqlite3, etc.
to what I hope will be a simple but meaningful project.  The "business
logic", as Alan puts it, will be for a given date range report the
mean BP reading.  If I get really enthusiastic, I might add some trend
analysis features, ... -- see, already feature creep is sneaking in!

My real hope from doing this simplified project is that the amount of
code might be small enough that I can post it here in its entirety for
critiquing.  Hopefully this will get most of my GCEs (Gross Conceptual
Errors) out of the way and I can return to the chess ratings project,
my wife's projects, etc., and have a better hope of success.



-- 
boB
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to