Alan - wouldn't you need declarations

SqlCommand AccountsSoftwareCommand = new SqlCommand();
SqlConnection AccountsSoftwareConnection = newSqlConnection()
 
Paul

-----Original Message-----
From: ProfoxTech [mailto:[email protected]] On Behalf Of Alan Bourke
Sent: 10 February 2016 15:06
To: [email protected]
Subject: Re: .NET equivalent of VFP SQL Pass-Through (i.e. without using EF or 
LINQ)

An ORM framework may be overkill for simpler requirements. There are also 
'lighter' ORM frameworks than EF, although EF is tightly integrated into Visual 
Studio. If you just wanted to update a table (Visual FoxPro in this case but 
the same applies to any back end) you could do something like below. Note use 
of parameters. Names changed to protect the innocent.

         class CustomerDocketWriter : AccountsSoftwareWriterAbstract
        {
            public Boolean DoProcessDocket(CustomerDocket updateDocket,
            SeqcoCompany thisCompany, DateTime stampDate)
            {
                UpdateOK = true;
                AccountsSoftwareConnection.ConnectionString =
                thisCompany.DataConnectionString;
                CommandString = @"update swimsinv where id=? set
                uploaded=.t., upwhen = ?";
                AccountsSoftwareCommand.CommandText = CommandString;
                AccountsSoftwareCommand.Connection =
                AccountsSoftwareConnection;
                AccountsSoftwareConnection.Open();
                AccountsSoftwareCommand.Parameters.Clear();
                OleDbTransaction AccountsSoftwareTxn =
                AccountsSoftwareConnection.BeginTransaction();
                AccountsSoftwareCommand.Transaction =
                AccountsSoftwareTxn;
                AccountsSoftwareCommand.Parameters.Add("@lnId",
                OleDbType.Integer);
                AccountsSoftwareCommand.Parameters.Add("@ltStamp",
                OleDbType.DBTimeStamp);
                AccountsSoftwareCommand.Parameters["@lnId"].Value =
                updateDocket.id;
                AccountsSoftwareCommand.Parameters["@ltStamp"].Value =
                stampDate;

                // -- Attempt to execute.
                try
                {
                    AccountsSoftwareCommand.ExecuteNonQuery();
                }
                catch (OleDbException ex)
                {
                    UpdateError = ex.Message;
                    UpdateOK = false;
                }

                // -- Did it work ?
                if (UpdateOK == true)
                {
                    // -- Then try to commit.
                    try
                    {
                        AccountsSoftwareTxn.Commit();
                    }
                    catch (Exception ex)
                    {
                        if (AccountsSoftwareWriterLogger.IsErrorEnabled)
                            AccountsSoftwareWriterLogger.Error("Error
                            committing SWIMSINV update to
                            AccountsSoftware:" + ex.Message);

                        AccountsSoftwareTxn.Rollback();
                    }
                }
                else
                    AccountsSoftwareTxn.Rollback();


                AccountsSoftwareConnection.Close();

                return UpdateOK;

            }

--
  Alan Bourke
  alanpbourke (at) fastmail (dot) fm

[excessive quoting removed by server]

_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://mail.leafe.com/mailman/listinfo/profox
OT-free version of this list: http://mail.leafe.com/mailman/listinfo/profoxtech
Searchable Archive: http://leafe.com/archives/search/profox
This message: 
http://leafe.com/archives/byMID/profox/[email protected]
** All postings, unless explicitly stated otherwise, are the opinions of the 
author, and do not constitute legal or medical advice. This statement is added 
to the messages for those lawyers who are too stupid to see the obvious.

Reply via email to