Please read the thread below: Chuck in our staff has interesting
comments and some workaround coding methodology that may be the answer.

Laure Hansen,
City of Redwood City
Information Technology
www.redwoodcity.org
1017 Middlefield Road
Redwood City, CA 94063
Tel: 650-780-7087
Fax: 650-556-9204
[EMAIL PROTECTED]
 


-----Original Message-----
From: IT-Chuck Smith 
Sent: Thursday, March 01, 2007 1:27 PM
To: IT-Laure Hansen
Subject: RE: [U2] Uniobjects.net READU Question


The pre dot.net uniobjects did not have exceptions (more accurately, the
pre dot.net VB did not have exceptions) so you had to check the status.
I continued the practice in my dot net app partly out of habit but  also
because I read the documentation and saw that the status tests were
still supported.  I agree that it looks like there is a bug, but if the
code is robust you won't hit it.  You can send my sample in as a
workaround if you want -- it's definitely the way to go.

Chuck 

-----Original Message-----
From: IT-Laure Hansen 
Sent: Thursday, March 01, 2007 1:24 PM
To: IT-Chuck Smith
Subject: RE: [U2] Uniobjects.net READU Question

Thanks, I'll try to look into your code further soon. Do you recommend I
send it back to the U2 e-mail group as a workaround? I'll be happy to do
that. 

I'm surprised you haven't hit it in your work in the past (unless there
were no records locks in the code you've written in the past?). Seems
that if it is a known bug, it would have surfaced pretty quickly. Maybe
it is linked to a specific version and/or environment?

Laure Hansen,
City of Redwood City
Information Technology
www.redwoodcity.org
1017 Middlefield Road
Redwood City, CA 94063
Tel: 650-780-7087
Fax: 650-556-9204
[EMAIL PROTECTED]
 


-----Original Message-----
From: IT-Chuck Smith 
Sent: Thursday, March 01, 2007 1:19 PM
To: IT-Laure Hansen
Subject: RE: [U2] Uniobjects.net READU Question


No I didn't know about it.  In addition to catching the exception, we
should test the status.  This covers the bases.  Here is what I mean
from my demo app (the test for UVE_RNF is for a record that doesn't
exist, i.e. Record Not Found):

            Try
                Form5020.RecordID = ClaimNo.Trim
                Form5020.Read()
                Select Case Form5020.FileStatus
                    Case UVE_NOERROR
                        If Form5020.Record.Extract(30, 0, 0).StringValue
= "" Then
                            Call EnableFields(True)
                        Else
                            txtApprDate.Text =
UniverseConnection.uonetSession.Oconv(Form5020.Record.Extract(30, 0,
0).StringValue, "D4/")
                            Call EnableFields(False)
                        End If
                        txtEmp5020.Text = ClaimNo.Trim
                        txtInj5020.Text = ClaimNo.Trim
                        txtAppr5020.Text = ClaimNo.Trim
                        temp = Form5020.Record.Extract(1, 1,
0).StringValue
                        Call GetEmployeeData(temp)
                        txtEmpSsn.Text = temp.Substring(0, 3) + "-" +
temp.Substring(3, 2) _
                            + "-" + temp.Substring(5, 4)
                        temp =
UniverseConnection.uonetSession.Oconv(Form5020.Record.Extract(14, 0,
0).StringValue, "D4/")
                        dte = Convert.ToDateTime(temp).ToLongDateString
                        dteInjuryDate.Value = dte
                        txtAccidentDesc.Text =
Form5020.Record.Extract(10, 0, 0).StringValue
                        cnt = InjuryCodes.Dcount(1)
                        For i = 1 To cnt
                            If Form5020.Record.Extract(58, 0,
0).StringValue = InjuryCodes.Extract(1, i, 0).StringValue Then
                                cmbKindOfAccident.SelectedIndex = i - 1
                                Exit For
                            End If
                        Next
                        txtSupvName.Text = Form5020.Record.Extract(28,
0, 0).StringValue
                        temp =
UniverseConnection.uonetSession.Oconv(Form5020.Record.Extract(30, 0,
0).StringValue, "D4/")
                        If temp.Trim <> "" Then
                            dte =
Convert.ToDateTime(temp).ToLongDateString
                            txtApprDate.Text = dte.ToString
                        End If
                        If txtApprDate.Text <> "" Then
                            btnApprove.Enabled = False
                        End If
                        tab5020.SelectedTab = EmployeeTab
                    Case UVE_RNF
                        ok = MessageBox.Show("Claim " + ClaimNo.Trim + "
Not Found.", _
                            "Simple 5020", buttonType, icontype, 0, 0)
                        Exit Sub
                    Case UVE_LCK Or UniObjectsTokens.LOCK_OTHER_READU
                        ok = MessageBox.Show("Record is locked by
another user", _
                            "Simple 5020", buttonType, icontype, 0, 0)
                        Exit Sub
                    Case Else
                        ok = MessageBox.Show("Read Error " +
Form5020.FileStatus.ToString _
                                + " - Contact IT", "Simple 5020",
buttonType, icontype, 0, 0)
                        Exit Sub
                End Select
            Catch ex As Exception
                ok = MessageBox.Show(ex.Message, "Simple 5020",
buttonType, icontype, 0, 0)
                Exit Sub
            End Try 

-----Original Message-----
From: IT-Laure Hansen 
Sent: Thursday, March 01, 2007 1:02 PM
To: IT-Chuck Smith
Subject: FW: [U2] Uniobjects.net READU Question

Chuck,

Have you noticed or heard about this? I will forward further e-mails in
this thread.

Thanks,

Laure Hansen,
City of Redwood City
Information Technology
www.redwoodcity.org
1017 Middlefield Road
Redwood City, CA 94063
Tel: 650-780-7087
Fax: 650-556-9204
[EMAIL PROTECTED]
 


-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Patricia Wilson
Sent: Thursday, March 01, 2007 11:48 AM
To: u2-users@listserver.u2ug.org
Subject: [U2] Uniobjects.net READU Question


Issue: When you do a READU on a record that doesn't exist, the first
time it fails and hits the exception, but the second read is successful
- even though the record still doesn't exist.



Why? Is this a bug?

           try

            {

                UniSession u=UniObjects.OpenSession("host", "login",
"passwd", "account", "uvcs");

                UniFile file=u.CreateUniFile("filename");

                file.UniFileLockStrategy =
UniObjectsTokens.UVT_EXCLUSIVE_READ;

                UniDynArray record;

                for (int i = 0; i < 2; i++)

                {

                    try

                    {

                        record = file.Read("reckey");

                        txtStatus.Text += string.Format("Try#{0}: read
successful\r\n", i);

                    }

                    catch (Exception ex)

                    {

                        txtStatus.Text += string.Format("Try#{0}: read
exception: {1}\r\n", i, ex.Message);

                    }

                }

                UniObjects.CloseSession(u);

            }

            catch (Exception ex)

            {

                txtStatus.Text += string.Format("session exception:
{0}\r\n", ex.Message);

            }













Patricia M. Wilson

MIS

x 3095

813.635.3095

[EMAIL PROTECTED]
-------
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/
-------
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/

Reply via email to