Jump to content

adragan

uniGUI Subscriber
  • Posts

    193
  • Joined

  • Last visited

  • Days Won

    9

Everything posted by adragan

  1. Solution for Lan Solution 1 Share the local workstation printer. Declare the printer as a "local" printer to the server. Create a table like IP, Server_Printer_Name ( actually the local printer) When you push the "Print" button swich to the local printer based on IP ( IP evidently must be fixed ) Generate and print the report, bar code etc. Solution 2 System service on server polling a table for "to be printed" reports, bar codes etc. In the table you specify which report, parameters, to what printer etc. WebApp inserts the respective information in the table. System service generates and prints it . After print, service deletes or marks as done the respective record from table. I saw this solution work 24/7 for 5 bar code label printing applicators in a factory. Maybe you can replicate it.
  2. adragan

    Thems

    Question : Can we install , from the point of view of licenses, Themes package on client server ? How can we install on a production server the Themes package so that the theme manager can find newly installed themes ?
  3. Simplest way : 1. From the search form , before closing you put the search result into a variable from UniMainModule. 2. Write a call back function from the search form that takes that variable from UniMainModule and puts it in the grid wherever you want. That is if I understood correctly what you asked.
  4. In your place I would analyse first what the SQL is doing and eventually separate the sql server on a different machine. Long running queries or complicated stored procedures "eat up" a lot of CPU. After that I would decide. I constantly run 80 session 2 shifts a day and I have very few problems.
  5. Off topic : Nice IP adress 44.414.998.234
  6. It happened to me when I swiched from one database to another. It looked as if in the app the connection to the database displayed the right data but the FastReport connector remained on the previous connection (???) . I solved the issue by including a frx database connection in each the report and changing parameters for the connection to the new database in the report before actually running the report. Of corse I can' say if it's your case. Just an ideea.
  7. If you intend to make it a ISAPI module this is better : procedure ........ var fname:string; ini:TIniFile; begin // Put your configuration in a different folder as the root , as in this case I used .\etc fname:=UniServerModule.StartPath+'etc\your_conf_name.conf'; if FileExists(fname) then begin ............. Here is the same as in the previous answer ............... end;
  8. You have a multitude of choices. Just a few ones : 1.All on one machine : If the applications are the same you put a single DLL mapped to the URL and connect o a "master database" The master gives you access to one or more "work databases" so the URL for different customers is the same ( www.uniguiapp.com/myapp....) but the login directs you to a particular customer database so you skip all the hassle of defining different URL-s , registering them in the DNS etc. 2.One Application Server ( cut1 + cust2 + .... cust n) and one separate machine with the Database server. You split the load o 2 machines. 3.If you use Apache you can define VirtualHosts for the same IP but different URL-s. There are other variations as well. The only thing that remains to be clarified ( at least for me ) is how to work with a load balancer for really big sites. At this point I think Fershad & Co has to give some more details.
  9. Check this , maybe it's what you want. http://chapmanworld.com/2017/08/11/embed-the-chromium-browser-in-your-delphi-projects-using-dcef3/
  10. Start like this : Frx:=TFrxReport.Create(nil); pdf:=TFrxPdfExport.Create(nil); try frx.Clear; frx.EngineOptions.DestroyForms := False; frx.EngineOptions.SilentMode := True; frx.EngineOptions.UseGlobalDataSetList := False; frx.EngineOptions.EnableThreadSafe := True; frx.PrintOptions.ShowDialog := False; frx.PreviewOptions.AllowEdit := False; frx.ShowProgress := False; pdf.ShowDialog := False; pdf.ShowProgress := False; pdf.OverwritePrompt := False; pdf.Background := True; pdf.EmbeddedFonts := True; <You load and run the report here !! > .................................................... finally Frx.Free; Pdf.Free; end; N.B. 1. TFrxDBDataSet are not supposed to be thread safe so don't use then. 2. Put a Database connection in each report and transmit the connection parameters to it.
  11. Possible scenarios : 1. I know there is a setting in SQL Sever that limits the ammount of memory used by the server. I don't know if it is also in the last Express but it's worth investigating. I used to run with 1 Gb without any problem. The rest might be used by the UniGui App. 2. Go to 64 Bit 3. Separate the SQL Server by the UniGui App. Put them on 2 different machines. 4. In your software avoid queries like : "Give me all invoices from 2000 till today" 5. Close all queries and commit all transactions when you close a form or a frame. 6. If you have no restricted requirements change the SQL Server to Firebird or Postgres. They are really good options and for 90% of applications there are no notisable speed differences.
  12. This looks like you want 2 sites hosted on the same server. Am i wrong ?
  13. All of the above or the report takes too much time to produce and you go in time-out with the main thread.
  14. adragan

    Need Help

    Step 2 Look at the demos. They are quite extensive.
  15. Try that and you'll get a sharing violation. Connection objects are not sharable between sessions. If you use MySQL then try "the php way" wich means you connect, download data , paint it in a StringGrid or a memory table and close connection. MySQL does connect/disconnect very fast. Firebird /Interbase not so fast.
  16. Where is your connection object ( TZConnection) placed ? Put it either on UniMainModule or on a Datamodule created by each session. NOT on UniServerModule. Connection object cannot be "shared" between sessions. IBX and Zeos, at least the last versions I worked with were threadsafe. I had problems with Zeos + Firebird 2.5 receiving strange errors at connection time.Sharing violations. Try IbDac or UniDac . It really works and you have FastReports connector right from the box.
  17. adragan

    report tool

    I had the same problems. In the end I discovered that the "big secret" is to install UniDac and FastReorts on the default C: drive. Otherwise you'll drown in a sea of "file not found" no matter how much patience you have to correct the paths.
  18. First I don't see the use of browsing 100k+ records in a DBGrid. I don't think the result is relevant for anything. Why don't you try some quey that returns a relevant result set, like 100+ records that mean something. Some other solution would be a query like "select first 100 skip <n*100> from ........ order by id" , save the position in some varible and with some buttons go forward or backward as needed recalculating the "n".
  19. In MainModule you create a connection. All DB objects from other forms and frames link to that connection. It's more economic in terms of database connections.
  20. Comment the first line in the project. Close project, reopen project and recompile. Even if it says that it generates an exe, the result will be a dll.
  21. I saw in action 2 solutions. 1. A system service that deals with printing. The web application writes in a special table what label should be printed and to what printer. The server has the printers defined and the printing service scans that table, generate the reports and sends the respective labels/reports to the appropriate printer. 2. If it's about barcode labels, there is a product called Bartender that somehow does the same thing but only(?) for Zebra labels (ZPL language). N.B. Bartender is not cheep ! Downside of this is that you either have to be on a LAN or on a VPN to do this. I have heard of Java scripts inside the PDF but I haven't seen it done.
  22. adragan

    IP*Works

    Why don't you use smtp component from Indy. It works with me. Also I think there was an example of how to use it on this forum.
×
×
  • Create New...