Welcome to the SRP Forum! Please refer to the SRP Forum FAQ post if you have any questions regarding how the forum works.
vince
About
- Username
- vince
- Joined
- Visits
- 169
- Last Active
- Roles
- Member
Comments
-
Thanks, Barry and Jared, for your input. Yes, I will be calling functions from the [EXECUTE PROCEDURES] and [EXECUTE PROCEDURES POST] sections. I read over the capabilities of Error_Services(); I think it will do what I need, and more easily than I…
-
I'm glad I could help. And finally I have contributed something to this very helpful forum.
-
@BarryStevens, just to clarify, is the registry key HKEY_CURRENT_USER\...\FAVORITES essentially empty, or is the key populated with names that you expect to see in the editor? If the latter, the value of the "(Default)" string may be zero. If you …
-
Thank you, Kevin. Problem solved
-
The installer from the link is about 4 kB more than my last recent installer; but after running the latest, the debugger windows still pops up.
-
Sorry for the delayed response, Don (thanks to getting pushed on to other tasks when four fifths finished and having to complete in my spare time). Yes, clarity is key, and your example has that. And without your coding example I was unaware of SQ…
-
I do appreciate the example transaction function you provided, @Don. On first read I could see nothing different between your code and mine apart from better error-handling in yours (specifically, SQLState: I will definitely get my code up to the s…
-
You didn't even need to create a second key to your table (I'm assuming this is what you did in the dictionary). Keep in mind that a multi-part key is nothing more than a string with asterisks. That is what I did; and multipart key as string did n…
-
Very interesting, your remarks on ReadV and WriteV. I may need to rethink their use in some cases. For the occasional column-write, though, I suppose the code will be slightly neater with a ReadV reading a value directly into a variable. A multip…
-
I see your point. (Oh, the elephant in the room.) The locking would have to be only on the column (assuming one can use a unique dummy keyID); hence avoid Lock(). For this particular table, which does not have a window front-end with default row-…
-
That's correct. I'm not sure on best practice here. So all I've done is go back to my concurrent programming 101 principles (which have some applicability for a database accessed over the network, though in a single-threaded environment), and noti…
-
My use case is a situation in which a single table can be written from dozen of places in the program. The keys IDs for the rows are dates. Potentially different parts of the program over a network can write to the same row at the same time if the…
-
@Don, now that I have had time to reflect on how the Lock function handles column-locking, do you know if OpenInsight can guarantee that the dummy KeyID won't match a real keyID for an existing row? As I understand it, a key ID for a database table…
-
You are indeed correct, Don (now corrected in the above post: 'Table_handle' -> 'Table_name'). It was quickly typed out, and my real code uses the table name as you guessed, not the handle. GetKeyIDLock / ReleaseKeyIDLock services from the Data…
-
One rationale is that OI does not maintain a list of columns you've locked. That is interesting. Why the row does not automatically unlock when unlocking a column is now obvious. The Lock statement does not have any syntax for identifying colum…
-
The record was not locked when the none of the fields were locked. I then locked a field and later unlocked it. At this point I expected the record also to be unlocked (last field unlocked would also remove the lock on the record), but not so. T…
-
Yes, I had come to that conclusion, but I wanted another pair of eyes to be sure I wasn't jumping to conclusions. Thanks for your assessment. I really should see if I can get a Works account. The version of the compiler I use is old: 2007. Maybe …
-
I did not expect lock table.File, AllOrderNo then lockObtained = 1 to fail the compiler, and I would report a compiler bug except that I wanted to check that I haven't missed something obvious (e.g. getting the syntax wrong) by getting into the deta…
-
That is very handy. I think I already have a use for that.
-
It's a relief, frankly. And it does open my eyes to the need for systematic locking which, in our code, I don't detect in many places (apart from the forms); because despite successfully updating a record, the program from another station can still…
-
Don, after your helpful explanation of how reads and writes are handled in OI, I stumbled on RTI_WRITERELEASE(..) which apparently does return FS error numbers. As I was replacing my Write statements with calls to this function, a random thought oc…
-
Yes, the same problem occurs when I use the Write statement. The reason I used WriteV was an assumption of efficiency: Write one field rather than the entire record. But now, if I understand what the WRITE.RECORD primitive does (it appears to wri…
-
Yes, I'm running UD 4.7.2.0. My Revparam has: ServerOnly=1 ServerName=vince_opto TcpIpPort=777
-
I've done that now - separate table, record, field, value, using Read/Write. Same result again: The write fails as expected when another program is writing to the record, but no report of the failure. Incidentally, when I delete the value manually…
-
I used Read and Write first up, but I ran it again today to get screenshots. Same result as yesterday with ReadV and WriteV (using a separate program in a ten-minute write-loop on the record to force a write failure from this service subroutine). …
-
The write-failure happens for me when two programs concurrently access the record. I have a ten-minute loop which I run separately; while that is running I try to write using the service above. The writeV from the service fails (verified in an edi…
-
OI 9.4.0 So are you saying that on a write-failure your program enters the Else part of the WriteV, starting line 26 in the service above? end else action = "Write"; * This section is not entered. …
-
Mark and Barry, I wondered about these points too, and I had to rule out such possibilities. Below I have added debugger screenshots showing table.fld before the deletion and the write and table.fldUpd after the read (which is the write-check). …
-
My motivation is partly more efficient programs. Reading and writing large files would take longer. And then I am influenced by what I have found in other programming languages. But your approach to avoid writing the entire file contents back to …
-
@BarryStevens: Using the syntax in the Call statement for a list of arguments, the result is the same as before. From the error message it appears that the deployment program treats everything on the second line in %PROCESS%, from name of subrouti…