Subject Re: ADOdatabase not working in signup.prg
From Gaetano <gaetanodd@hotmail.com>
Date Mon, 24 Aug 2020 16:45:48 +1000
Newsgroups dbase.getting-started

As I was trying to create the same connection in a datamodule using a
string for the connection, I got a similar error: "Test connection
failed because of an error in initializing provider.[Microsoft][ODBC
driver Manager] Data source name not found and no default driver specified"

Hopefully that helps narrowing down the reason for the failure.

Here is the connection string with sensitive elements <replaced>...

"Driver=MySQL ODBC 8.0 ANSI Driver;SERVER=<serverIPaddress>;UID=<user
ID>;PWD=<password>;DATABASE=<database name on the server>;PORT=3306"

Cheers,
Gaetano.

When entering connection string and testing the connection, I get the
error "

On 24/08/2020 15:47, Gaetano wrote:
>
> Hi there,
>
> I'm going through the web tutorials and was customizing the PRG file
> generated by the wizard.
>
> I am trying to use ADO to connect to a MySQL database. THe first step
> was to connect and create the attendees table using the following code:
>
> d = new adodatabase()
> d.connectionString = "my connection string"
> d.active = true
>
>
>      try
>        cStr = "CREATE TABLE attendees ( "
>        cStr += " FirstName CHAR(15)  NOT NULL,"
>        cStr += "  LastName CHAR(20) NOT NULL,"
>        cStr += "  Address CHAR(35) NOT NULL,"
>        cStr += "  City CHAR(20) NOT NULL,"
>        cStr += "  State CHAR(2) NOT NULL,"
>        cStr += "  Zip CHAR(10) NOT NULL,"
>        cStr += "  eMailAddress CHAR(80) NOT NULL,"
>        cStr += "  eMailSentDate CHAR(8) NOT NULL,"
>        cStr += "  PRIMARY KEY USING BTREE (FirstName))"
>        d.executeSQL(cStr)
>      catch(exception e)
>      endtry
>
> That code works perfectly when in a standalone PRG file, the table is
> created on the server.
>
> However, when I insert it in the signup.PRG file, it causes a database
> engine error while making the database connection active.
>
> Here is how it is inserted in the PRG file:
>
> *****Note - I concatenate the error messages so they all appear on a
> single page
>
>
> if (not oCGI.isKey("ATTENDEES1*@eMailAddress")) or
> empty(oCGI["ATTENDEES1*@eMailAddress"])
>
>        cSorry+="<B>eMail Address</B> is required!<br>"
>
>     endif
>
> **** note: once all the checks are done for any empty fields, I check
> for the length of the cSorry string to determine if there were any
> missing fields, and if not, I establish the connection and try to create
> the table. The table is not being created on the server when the code is
> inserted in this SIGNUP.PRG file
>
>
>      if len(cSorry)>0
>          oCGI.SorryPage(cSorry)
>          release cSorry
>      else
>
>          d = new adodatabase()
>          d.connectionString = "my connection string"
>          d.active = true <----this is the offending line
>
>
>          try
>            cStr = "CREATE TABLE attendees ( "
>            cStr += " FirstName CHAR(15)  NOT NULL,"
>            cStr += "  LastName CHAR(20) NOT NULL,"
>            cStr += "  Address CHAR(35) NOT NULL,"
>            cStr += "  City CHAR(20) NOT NULL,"
>            cStr += "  State CHAR(2) NOT NULL,"
>            cStr += "  Zip CHAR(10) NOT NULL,"
>            cStr += "  eMailAddress CHAR(80) NOT NULL,"
>            cStr += "  eMailSentDate CHAR(8) NOT NULL,"
>            cStr += "  PRIMARY KEY USING BTREE (FirstName))"
>            d.executeSQL(cStr)
>          catch(exception e)
>          endtry
>
>          ////// Open Query or dataModule
>          SET PROCEDURE TO "attendees.dmd" ADDITIVE
>          dMod = new attendeesDataModule()
>
> Any idea why this is not working?
>
> Cheers,
> Gaetano.