Hello everyone,
I have a strange issue that is occurring with random records inside some of my db's... (Currently we are running Progress 9.1D09.)
My issue is that sometimes when I try to locate a record that I know exists, the record is not returned. But, if I use match and a wildcard instead of '=', it will find the record. And once found, the normal '=' statement will then find the record as it should. (I'm assuming that this is because the pointers to the record are in memory at that point?) Once you close out of procedure editor and reopen it, the record will again not be found...
Now, we also have discovered that putting a 'pause' statement at the end of the procedure will cause the record to be displayed. Also, this problem is not only limited to the editor... this is a problem that was originally discovered with a Crystal Report accessing Progress via ODBC.
Ok, my first thought on the whole thing when I first became aware of it was 'Index Rebuild'. Well, I scheduled some downtime as soon as I could and rebuilt the indexes, but unfortunately after we rebuilt the indexes we are still noticing these issues.
Here are some examples...
If I do a simple:
For each ncr_mstr where ncr_nbr = "005092":
display ncr_mstr with 2 col.
end.
It never returns the record. But if I do a:
For each ncr_mstr where ncr_nbr matches "00509*":
display ncr_mstr with 2 col.
end.
It will find the record while going through the matching criteria. After it finds the record, the first statement above will find it. Also, the following remedies the problem, but not for ODBC connections (obviously...):
For each ncr_mstr where ncr_nbr = "005092":
display ncr_mstr with 2 col.
pause.
end.
I'm really hoping that someone out there can shed a little light on what the problem might be and how to remedy it.
Thanks in advance!
Jamie
I have a strange issue that is occurring with random records inside some of my db's... (Currently we are running Progress 9.1D09.)
My issue is that sometimes when I try to locate a record that I know exists, the record is not returned. But, if I use match and a wildcard instead of '=', it will find the record. And once found, the normal '=' statement will then find the record as it should. (I'm assuming that this is because the pointers to the record are in memory at that point?) Once you close out of procedure editor and reopen it, the record will again not be found...
Now, we also have discovered that putting a 'pause' statement at the end of the procedure will cause the record to be displayed. Also, this problem is not only limited to the editor... this is a problem that was originally discovered with a Crystal Report accessing Progress via ODBC.
Ok, my first thought on the whole thing when I first became aware of it was 'Index Rebuild'. Well, I scheduled some downtime as soon as I could and rebuilt the indexes, but unfortunately after we rebuilt the indexes we are still noticing these issues.
Here are some examples...
If I do a simple:
For each ncr_mstr where ncr_nbr = "005092":
display ncr_mstr with 2 col.
end.
It never returns the record. But if I do a:
For each ncr_mstr where ncr_nbr matches "00509*":
display ncr_mstr with 2 col.
end.
It will find the record while going through the matching criteria. After it finds the record, the first statement above will find it. Also, the following remedies the problem, but not for ODBC connections (obviously...):
For each ncr_mstr where ncr_nbr = "005092":
display ncr_mstr with 2 col.
pause.
end.
I'm really hoping that someone out there can shed a little light on what the problem might be and how to remedy it.
Thanks in advance!
Jamie