Jump to content

All Activity

This stream auto-updates     

  1. Today
  2. Hi... [OT] Why ACCESS? For sado/maso there are corresponding places... If you want a simple and working database...u can use Firebird. Small and easy to install. Embedding and Server use. https://www.firebirdsql.org/en/firebird-3-0/ [/OT]
  3. Yesterday
  4. david_navigator

    Program using FDTable that works on my computer, but not on others... (Database)

    Does the info here help at all ? https://stackoverflow.com/questions/26244425/general-error-unable-to-open-registry-key-temporary-volatile-from-access
  5. Hi, I'm starting to use AWS (Amazon Web Services) more and more. And I store a snapshot of the entire drive so I can quickly launch another computer instance with the same Windows, Interbase and Delphi created application. (in case I need to). I know that some database servers licenses are tied to the specific CPU or computer. Does this apply to Interbase too? Joe
  6. DesadaptadoDimensional

    Program using FDTable that works on my computer, but not on others... (Database)

    Hello, thank you for your reply. Sorry, I didn't realise it included parts in Spanish. It says: EXCEPTION EMSACCESSNATIVEEXCEPTION IN MODULE MANAGER.EXE AT 00268D9E FIREDAC PHYS ODBC MICROSOFT ODBC MICROSOFT ODBC MICROSOFT ACCESS DRIVER GENERAL ERROR UNABLE TO OPEN REGISTRY KEY TEMPORARY VOLATILE ACE DSN FOR PROCESS 0X1384 THREAD 0X1710 DBC 0X19DD42C JET I downloaded that setup in other computer, unfortunately, after install it, the error exception stills... Its weird but only works on my computer.
  7. Mark-

    Enbedded editor, debugging, etc...

    We are looking to add Python, not replace TMS scripter. Thanks for your opinion.
  8. Renaming private (existed in implementation section) procedure/function parameters does not propagate to the procedure body. Please try edit this function and change InString to something other. function StrToIdBytes(const InString: string): TIdBytes; var ch: Char; i: Integer; begin SetLength(Result, Length(InString)); i := 0; for ch in InString do begin Result[i] := Ord(ch); inc(i); end; end;
  9. Why? I claimed that it uses same amount of fields like conventional hash table with heap allocated entries - and that's true. There is an array of indices - called "buckets", and yes, this is the main table array, which is analogous to array of pointers to entries (nothing "pretty compact"). There is the "next" field in each entry. So, the waste of space is roundly the same. The levels of indirections - are the same and even worse. You also ignored the fact that all entries are preallocated - thus even more waste of space. All entries are stored continuously in a single array - better cache locality - yes, but I've not talked about this. Overall, this topic is a big question. In real app we have a higly unpredictable sequence of memory accesses, because an app is really a big mess (graph) of heap allocated objects, and hash map access code is mixed with accesses of data from the other objects. And moreover, since hashmap has O(1) average access performance, you do not typically access more than a single entry at a time. So, speaking more generally, cache locality in OOP language is more a task for memory manager. And overall it importance for real code is imho exaggerated.
  10. Your assessment on the C# dictionary is incorrect - in fact it uses a pretty nice design - the actual "hashtable" is just an array of integer. Pretty compact. They store the indices to the other array where the actual items reside in and there are no gaps because those items are stored in a contiguous way. No wasting space if you have a low load factor. Yes, there is one indirection but usually, unless you have so many items that these two does not fit into cache anymore this is pretty darn fast. Collisions are being solved by linking the items that collided - can certainly argue there is some wasted space because all items that never were subject to a collision have that next pointer being unused. There are other implementations such as the one in python or the one we implemented in Spring4d (which is very similar to the one in Python) that uses probing with some factor to avoid clustering. More on the C# implementation https://blog.markvincze.com/back-to-basics-dictionary-part-2-net-implementation/
  11. SwiftExpat

    Enbedded editor, debugging, etc...

    They are not nearly the same functionality, stick with TMS. I think of it like this, PY4D loads python39.dll into Delphi at the api level. At this point you have an execution engine. As a developer you want / need to wrap your Delphi API to make it python friendly / usable. A justification would be to python enable your end users as some sort of marketing selling point. I fear you would be teaching / debugging your end user python which is copy paste from the internet. It is valid large investment if you want to grow out of your application something like this where the Wing IDE is interacting with Blender. Look at this as an example and just imagine the work to get there. https://wingware.com/doc/howtos/blender
  12. The question is in overall size. If the size is not too big, which is again - typical, then the table with "unnecessary memory indirections" will work faster, because the logic here is simpler. A table, which inlines everything, must also pay its own price to prevent "wasting space by storing pointers" by introducing additional fields, doing bit manipulation and more array element accesses. But, such a table also wastes space because of lower "load factor", and for yet empty slots when SizeOf(Value) > SizeOf(Pointer). Some well known examples: - Java HashMap and Hashtable - heap allocated entries. Well, they have almost no choice, because Java has no structs. The only way to inline is to keep several parallel arrays. - C# Dictionary<K, V> - kind of tricky code, which preallocates all entries in a separate array, and then uses a kind of tiny embedded memory manager to provide entries from this array. As a result it stores two separate arrays (same waste of space) and indexes instead of direct pointers (waste of space; slower). Since all entries are preallocated, then it becomes even more waste of space when SizeOf(Value) > SizeOf(Pointer).
  13. MikeMon

    Firebase Analytics Events

    Anyone? or even a point in the right direction?
  14. Mark-

    Enbedded editor, debugging, etc...

    Thanks for the response. >Do you really need the IDE embedded in your application or could you treat it as a remote execution / debug scenario? Embedded. >Which code, Delphi or the Python script, do you need the user to be able to watch / step into? Python. Just like we do with TMS Scripter. >Could you use PY4D to host the interpreter and then remote attach to it with the IDE? I have not used PY4D. Is this different from the first question?
  15. David Schwartz

    Out parameter is read before set

    Yes, exactly! Most of these I was able to solve, although some took quite a lot of head scratching.
  16. David Schwartz

    Out parameter is read before set

    no, not that specifically. But I know of a lot of things C# does have that I'd love to see supported in Delphi. ūüėČ
  17. SwiftExpat

    Enbedded editor, debugging, etc...

    I do not have a solution for this, but have some thoughts to explore this further: Do you really need the IDE embedded in your application or could you treat it as a remote execution / debug scenario? Which code, Delphi or the Python script, do you need the user to be able to watch / step into? --how deep does the customer really need to watch into your Delphi code, first public level only? Could you use PY4D to host the interpreter and then remote attach to it with the IDE? --this is probably the path to aim for, it may require more wrapping of your Delphi code, but then you have options on the IDE side.
  18. Edwin Yip

    TBCEditor text editor component

    Great news! It seems that TBCEditor is coming back as open open source again as github.com/TextEditorPro/TTextEditor But looking at the texteditor.pro site, but quite sure the github repo is by Lasse the same author of the old TBCEditor. Not sure what improvements has been brought by the new version and but it seems doesn't support CJK characters, pity...
  19. Dave Novo

    Enbedded editor, debugging, etc...

    +1 for someone creating an embedded IDE based on PyScripter to embed into a Delphi application and provide Python editing and execution within your delphi app.
  20. Last week
  21. If you say so - people have profiled the crap out of hashtables - and none that is halfway decent is using unnecessary memory indirections or wastes space by storing pointers. The point with strings might be true but then you only pay the price when using strings - and chances are that the string you are using to look up the item is already in your cache.
  22. All this is true when working with tiny things, like, for example, mapping int to int. But, in more usual case, like string keys, the effect is shadowed by string handling overhead and the fact that strings themselves are heap allocated.
  23. Der sch√∂ne G√ľnther

    Program using FDTable that works on my computer, but not on others... (Database)

    You seem to be using FireDAC to access a Microsoft Access file. I don't understand the language you have on screen, but entering the terms "ace dsn jet" from your error message into an internet search engine reveals that the computer you're trying to run it on does not seem to have the necessary ODBC drivers for accessing the database file. Does installing the following help? Download Microsoft Access Database Engine 2016 Redistributable from Official Microsoft Download Center PS: The Windows "Sandbox" is a great feature to test if your program runs on other machines that do not have additional software installed (requires Windows Professional, I think).
  24. Hello everyone, I am a 1st year programming student. Today I have not been able to present my project, which uses .accdb databases through FDTable, FDConnection and DataSource although it works correctly on my computer. but not in others I thought that the problem was related to the database path, but I use a cloud, which is where I install my Delphi files and projects, so in principle the path always remains the same... I don't know what the problem is. I attach my project, with the dproj file if you want to have a look at the code, and also the executable. Also a screenshot of the error. Thanks and best regards https://www.mediafire.com/file/ofiicfhuv69af8t/managerv1.7z/file
  25. ...ah, I see! Thanks, that made my day !
  26. Yes i know, it's what i had first, probably gonna mix them up. add the mutex way to the code. Needed the code i posted because i need to a way to get the handle of the already started instance.
  27. BTW, the "classical" method to detect or prohibit more than one instance of an application is to use a mutex.
  1. Load more activity
√ó