Search results

  1. G

    For Each Statement Populated By Variable

    Depending on your Progress license (not version - I mean, your ability to run compiled-on-the-fly code), you could do this: /* main.p */ {include.i &file = orders} {include.i &file = customers} etc. /* include.i */ for each {&file}: export {&file}. Dynamic queries are much cooler, though, and...
  2. G

    Question Webspeed And Iis 7.5 Hosted In Separated Servers?

    That is not bad advice and it's certainly true that putting everything on one machine will make individual queries slower. But if you put AppServers onto another machine, you will be able to scale users much closer to linearly, and with greater flexibility, which can be important if you get into...
  3. G

    Craziest Progressism?

    That looks correct to me? The '+y' would be interpreted as a single expression consisting of a unary + operator operating on a variable. The unary + operator doesn't actually do anything in Progress, but lots of languages have it: What does the unary plus operator do?
  4. G

    Craziest Progressism?

    Incented by the 'for each with rowid' post, our group spent all day looking for weird Progress behaviours. It's a long list, but here's my favorite! def var h_char as char init today. message h_char. Of course, this doesn't actually matter at all. It does make you wonder what lurks in the...
  5. G

    Question For Each With Rowid In Where Clasue

    I have a coworker who is a whiz with this kind of thing and he's been trying different scenarios for the last hour. UNDO, LEAVE seems different again, for example. We were wondering if someone changes the data between the two FINDs, if the second find will retrieve the most recent version or...
  6. G

    Question Block

    There's no way that I know of. It's common in our shop to add the comment. It's also common that the comment doesn't match the reality, which is why I don't like that approach. But many do!
  7. G

    Question For Each With Rowid In Where Clasue

    Wow. That blows my mind a bit. As far as I can tell, you're theory is correct. I'm interested to see what The Seniors say. In our version of 'customer' we have a field 'acct' that is a unique key. - add 'bfcustomer.acct = customer.acct', same behaviour - replace the ROWID check with acct =...
  8. G

    Answered Is using Temp tables and locking bad coding standards

    I found these notes about CAN-FIND from one of our internal knowledgebase entries, you might find them interesting. Or not. I was trying to disprove the 'CAN-FIND NO-LOCK does absolutely nothing' claim, but I failed ;) -- You can put LOCK qualifiers on a CAN-FIND. 1. Unlike a regular FIND...
  9. G

    Get database field data-type at compile time?

    Unless I misunderstand the question, you don't need a record or a query. def var b as handle. create buffer b for table "any table name goes here". disp b:buffer-field("any field name goes here"):data-type.
  10. G

    Question Openedge Oo Classes On Appserver Called From (windows) Client Application

    I'm curious to see what the crowd says - we don't use OOABL, but based on my good knowledge of AppServer and vague knowledge of OOABL Progress ... I doubt you can have an object on an AppServer that was instantiated directly by a Windows client. Or if you can, you'd need to be STATE-AWARE or...
  11. G

    Best Appserver Configuration

    Too open ended. But I'll give it a shot: 1. Stateless/State-Free only. If you try State-Aware or State-Reset, they'll laugh you out of town. Though I know at least one guy who swears by it. 2. You posted about # of AppServers before. Basically, you generally want enough agents available so that...
  12. G

    Consuming A Web Service

    1. My issue with STOP-AFTER isn't ABL versions; it is that it doesn't STOP-AFTER everything. I believe it STOPs-during an unbounded query, but it definitely doesn't STOP a PAUSE, and in general it doesn't STOP any sort of external calls. I believe the same is true of the otherwise promising...
  13. G

    Consuming A Web Service

    Thank you. So is that to say that ABL sockets can't handle certificates and SSL, end of story? (I'm using perl anyway, so it's not a big deal, I just like to know). Unfortunately, 'new versions' are dead to me. I agree, the 11.x JSON object would be helpful ;) -- We have a lot of worries...
  14. G

    Consuming A Web Service

    READ-JSON is not directly useful for pretty much any real-world third-party JSON that I've seen, because it presumes a structure that is basically a series of temp-tables. In my experience there are always scalar variables that live outside of temp-tables (arrays in JSON), or complex nestings...
  15. G

    Consuming A Web Service

    I can't really help you, but I'm working on this exact thing right now. I'm perhaps crippled by being bound to 10.1c. At the moment I'm using raw sockets and parsing the output JSON with perl. This seems to work OK but I'm worried about certificates, which (a) are required for the final...
  16. G

    Bad Queries

    IMO, approaches of trying to find problems based on XREF or looking at source can be non-productive because there are lots of cases where CAN-DO or USE-INDEX causes whole index reads ... or some other heinous thing ... which don't actually matter, because the tables involved never have more than...
  17. G

    Question Finding, Where This Table Is Created?

    I believe none of these solutions will work if you use dynamic queries. To be "guaranteed" to catch "everything", you can use session triggers. You don't need to have, or to modify, your source code although you would need to add code to establish the triggers somewhere. Realistically, it may or...
  18. G

    Bizarre Temp-table Name Resolution

    I'm not sure if you are referring to an otherwise empty DB, or a variation of Sports. But, try adding a third table called 'test1'. If your system is consistent, 't' will resolve to 'tst'.
  19. G

    Parsing Xml

    10.1C We need to parse blobs of 3rd party JSON (eg: we can't change it) that contains a combination of arrays (temp-tables) and stand-alone elements (variables). For example: { "recipientExternaldId" : "123ABC5", /* variable */ "searchResponse" : [ /* temp-table */ { "errorCode"...
  20. G

    Bad Queries

    This is probably not helpful, but: IMO, fixing bad queries is easy... the crazy thing is, waiting for customers to complain before you go looking. In other words - IMO, you should have measurements in your code (eg. VST's, time measurements, AppServer logs, etc.) and alerting systems to...
Back
Top