G
gus bjorklund
Guest
in client-server mode can-find works as follows: the 4GL compiler generates something called "e-code" from the where clause in the can-find statement. the e-code excludes the part of the where clause that was used for index bracketing. the compiler also generates the index bracketing information separately and puts it into the r-code along with the e-code. if the index bracketing information is sufficient, the e-code part may be empty. at runtime, the client assembles the index bracketing information and the e-code into a network message that is sent to the server. there are some things, like function and method calls, that cannot be handed off to the server because the server gets only the e-code and not the application's r-code. when the server gets the message, it unpacks it and searches for an index entry according to the brackets and key values sent. if an entry is found, and the e-code is not mpty, then the server has to fetch the record and evaluate the expression against the fields of the record. if no entry is found or the expression result is false, then can-find didn't. either way, the result is sent back to the client. note that not every where caluse can be handled by the server because sometimes the client has the necessary data and the server does not. if that is more than you wanted to know, i am sorry. if it is not sufficient, go ask laura stern. since i can't look at compiler the code anymore, i cant go see what the exact rules are.=
Continue reading...
Continue reading...