StrataFrame Forum

Seek

http://forum.strataframe.net/Topic31141.aspx

By Javier Porrata - 4/17/2012

Why If I use this code it always return that the data is not finded?

        If BoReport1.Seek("report_nbr='12'") Then
            '-- Ensure the product is active
            MsgBox("Report 11 found")
            'ProductsBO1.prod_isactive = True
        Else
            MsgBox("Report 11 not founded")

        End If

Even the record exist in the table
By Ivan George Borges - 4/17/2012

Hi Javier.

If report_nbr is a character type, it should work, if it is an integer, for example, you should use:

        If BoReport1.Seek("report_nbr = 12") Then
            MsgBox("Report 12 found")
        Else
            MsgBox("Report 12 not found")
        End If
By Edhy Rijo - 4/17/2012

Hi Javier,
Just to clarify, you are trying to locate a record in BoReport1 where report_nbr = '12', now in your MessageBox you are showing "Report 11 found" are you looking for 11 or 12?

Also, what is the field type value of report_nbr? string or Integer?

Last, the BO.Seek() method will not search for the record in the database, it will look in the internal data table of the BO, so make sure the record exist in the BO so it can be found.
By Javier Porrata - 4/17/2012

Hi Edhy,

So I have to do a fillby_reportnbr first and then the Seek?
By Javier Porrata - 4/17/2012

Thanks, the field is a string....But Edhy show me that the BO has to be filled before it can be used, I thought the BO look for the data directly to the table.

Thanks
By Javier Porrata - 4/17/2012

Hi Edhy,

Lo que me gustaria poder hacer es algo asi:

        Dim loString As String
        Dim loString2 As String

        loString = "select * from report where report_nbr = " & "'" & chkReport_nbr.Text & "'" (donde esto seria algo como "Select * from Report where Report_nbr = 'VALOR DEL COMBOBOX'"

        loString2 = "report_nbr=" & "'" & chkReport_nbr.Text & "'" & """" (donde el string seria igual pero solo con REPORT_NBR = 'VALOR DEL COMBOBOX'")

        BoReport1.FillDataTable(loString)
 

        If BoReport1.Seek(loString2) Then
           Label5.Text = BoReport1.Report_description
       Else
          MsgBox("Report not founded")
       End If

Gracias Anticipadas....
By Edhy Rijo - 4/17/2012

Javier Porrata (4/17/2012)
... I thought the BO look for the data directly to the table.

In VFP, yes, but not in SF BO.  StrataFrame Business Objects are very well though and designed and when used properly you can do miracles.  Some of their methods are designed to manipulate their internal data table (you could compare this to a VFP table alias), so the Seek() method is one of them that will look for the first record that matches the WHERE condition, so its name may be familiar to VFP developers but in reality is not the same.

For more detail explanation, please take a look at the StrataFrame help file topic from where you got the sample code.
By Javier Porrata - 4/17/2012

Ok Thanks Edhy,

I will do that.