Jump to content

Gary

Members
  • Content Count

    137
  • Joined

  • Last visited

Everything posted by Gary

  1. The second computer has only 1 user, yours truly. I can access the share no problem through an already existing mapped drive or just by typing the address into the file manager. So the computer\user has access. As I said I even tried starting the app as administrator. Most of the attachments are .pdf files, so I tried opening from my reader, no problem, even typing \\DellT310\users\public in the file open dialog will open the public directory. Why would the other app be restricted? The path has to be correct (no spelling errors) since it is read from the Database and the other computer accessing the same database has no problem??
  2. Hello all, Deployment works fine on 1 machine but above error on other. Here is what I have tried/done: I made sure all files are included and in right directories. I uploaded folder to my local NAS drive then copied the same folder to 2 different computers, neither has any development environment installed. Both computers have Microsoft C++ 2012 redistributable installed(One suggestion said it was required). I tried both 32 and 64 bit. Both 32 and 64 run fine on 1 computer, the other gives error(either ibtogo.dll or ibtogo64.dll). Since the one works fine the problem shouldn't be any missing files or license issues. Any suggestions on what may be missing or interfering?
  3. Gary

    cannot load client library ibtogo.dll

    Yes, all are in folder I copied over. That was Interbase last chance. Switched to Firebird 4.0, all is well.
  4. Anyone else getting this error when using Raize components Del[phi 11 [dcc32 Fatal Error] Unit1.pas(7): F2051 Unit RzCommon was compiled with a different version of Vcl.Forms.TCustomForm
  5. Thanks Lajos. I should have searched first!
  6. Hello all, I just installed Delphi 11 along with the developer edition of Interbase. All worked fine until I tried connecting from Delphi 10.4. After trial and error I found that both installations create a developer_ib2020 instance. However each version uses it's own location path and the other cannot connect to this instance. C:\Program Files (x86)\Embarcadero\Studio\21.0\InterBase2020 for 10.4 and C:\Program Files (x86)\Embarcadero\Studio\22.0\InterBase2020 for Delphi 11. So after installing Delphi 11 the Interbase Server Manager root directory is C:\Program Files (x86)\Embarcadero\Studio\22.0\InterBase2020, and connections from Delphi 11 work fine, but not from Delphi 10.4 If I load Delphi 10.4 and reinstall Interbase the Server Manager root directory is C:\Program Files (x86)\Embarcadero\Studio\21.0\InterBase2020, and now connections work from Delphi 10.4 but not Delphi 11. How do I go about installing Interbase Developer so that I can connect from either version? I did find an article that Error: Unavailable Database (embarcadero.com) and Changing InterBase connection defaults in RAD Studio (embarcadero.com) but no Joy.
  7. If you skipped the Interbase install, does firedac connect to the databases in Data Explorer or did you need to modify them? If not then that is the way to go! My question about server instances had to do with the install I did of the standalone DB. It asked if I wanted multiple instances, I said yes and was able to set up 2 different ones. I was hoping it was possible to do this at any time not just during install. My intent was to set up instances using different paths in hopes that it would fix the problem. Turns out I just needed to use TCPIP. Still, installation is able to set something inside the IDE so that it can use the local protocol. That should be configurable somewhere.
  8. David, My sentiments exactly! However I must have missed something because if you select Interbase as a feature when installing you are never asked setup questions and it just overwrites the developer_ib2020 settings, as well as setting IDE environment variables. This of course could be all me. I just let the installer do it's thing and ended up with this situation. If I had experience with Interbase maybe I could have installed it differently. Maybe I shouldn't have selected Interbase when installing Delphi 11 since it was already on the machine? Maybe the install would have picked this up, or it may not have even been necessary at all, I could just have used the TCPIP settings in Delphi 11. I see you have multiple server instances in IBConsole. How did you set them up? One of my attempts to solve my problem, I downloaded the separate install of Interbase, and could create separate instances during the install, but I can't see any way to do that later. Thank you for the response Gary
  9. Hans, My Apologies, it does work if I leave the port number blank. BTW I am trying to connect from the IDE, should have mentioned that. I simply add a FDConnection (or Unidac Connection) to a form and try connecting to the sample data, nothing fancy. So the last IDE to install Interbase can set protocol to "local" and leave server blank, but to work on any other version you need to use tcp/ip. That applies to the connections in the Data Explorer as well. I had to modify each connection. That's great! Thank you. The last article in my original post talked about the install setting up IDE, I did find 2 environment variables dealing with Interbase but adjusting them had no effect. Still it must be possible to adjust the IDE to your preferred locations so they work as intended (protocol = local)
  10. I don't think Developer edition allows that. Just tried tcp/ip localhost anyway and received "Unable to complete network request..."
  11. Anyone know how to get rid of this?
  12. Gary

    Problem with TBGrid connected to SQLite

    Not sure what you mean by "change caption for different fields". You can do this at design time by right click fdTable and open field editor, right click and add all fields (or the ones you want), then set the DisplayLabel property of each field. Hope that helps
  13. I do something similar to Danny. DBControls and TDataSource on form, Devart components on a TDataModule. I have a unit between them, but to avoid having your form reference the DataModule you can assign them at runtime TForm.TDataSource.DataSet := TDataModule.TMyQuery. Also it seems that your customer knows his way around a database. You might have a look at http://www.rosinsky.cz/delphi/ Thomas has a filter dialog, as well as a Grid properties dialog that allows the end user to select the grid columns and create filters almost as good as a SQL statement Gary
  14. Delphi 10.4.1 Windows 10 Why does this leak memory? FastMM4 reports A memory block has been leaked. The size is: 36 This block was allocated by thread 0x948, and the stack trace (return addresses) at the time was: 4070A2 [System.pas][System][@GetMem$qqri][4843] 40A0F7 [System.pas][System][@NewUnicodeString$qqri][25659] 40A584 [System.pas][System][@UStrAsg$qqrr20System.UnicodeStringx20System.UnicodeString][26643] 615C6A [Unit1.pas][Unit1][TForm1.GetReminder][65] 616166 [Unit1][Generics.Collections.%TList__1$19Unit1.TReminderItem%.Create] 615A34 [Unit1.pas][Unit1][TForm1.Button1Click][46] 770168CF [GetWindowLongW] 720A55DC [Unknown function at SetWindowSubclass] 4086D3 [System.pas][System][@IsClass$qqrxp14System.TObjectp17System.TMetaClass][18453] 553531 [Vcl.Controls.pas][Vcl.Controls][Controls.TControl.Click][7596] 56C28B [Vcl.StdCtrls.pas][Vcl.StdCtrls][Stdctrls.TCustomButton.Click][5609] type TReminderItem = record public RecordID: Integer; EmployeeID: Integer; EmployeeName: String; HireDate: TDate; LastDate: TDate; Notes: String; procedure Clear; end; TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private procedure GetReminder(AList: TList<TReminderItem>); end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var LList : TList<TReminderItem>; LReminderItem : TReminderItem; PReminderItem : ^TReminderItem; begin LList := TList<TReminderItem>.Create; try GetReminder(LList); ShowMessage(LList[0].EmployeeName); finally for LReminderItem in LList do LReminderItem.Clear; LList.Free; end; end; procedure TForm1.GetReminder(AList :TList<TReminderItem>); var LReminderItem: ^TReminderItem; begin New(LReminderItem); LReminderItem.RecordID := 1; LReminderItem.EmployeeID := 1; LReminderItem.EmployeeName := 'Test'; LReminderItem.HireDate := Now; LReminderItem.LastDate := Now;; LReminderItem.Notes := 'A Note'; AList.Add(LReminderItem^); end; { TReminderItem } procedure TReminderItem.Clear; begin Self := Default(TReminderItem); end; This is just my latest attempt, I have tried Finalize, FinalizeRecord, FreeMem. The Clear procedure is also an attempt after seeing it in a different post. What is the proper way to free memory of a record I create in a list? Thanks in advance, Gary Unit1.pas Unit1.dfm
  15. Ya, so is it bad practice to have a simple class like TReminderItem = class public EmployeeID: Integer; EmployeeName: String; HireDate: TDate; LastDate: TDate; Notes: String; end; without the requisite properties, getters and setters just to move data around?
  16. Thanks Stefan, I have always been confused by records and pointers, but with the new custom managed records wanted to give it another try since it looks like records for just data storage are simpler to work with than classes. I will probably just use a class with simple properties but here is the revised code with record pointer. I do need to change Data as I will use the record to read data from a database and fill the list with records. TReminderItem = record FEmployeeID: Integer; FEmployeeName: String; FHireDate: TDate; FLastDate: TDate; FNotes: String; end; PReminderItem = ^TreminderItem; procedure TForm1.Button1Click(Sender: TObject); var LList : TList<PReminderItem>; LReminderItem : PReminderItem; begin LList := TList<PReminderItem>.Create; try GetReminder(LList); ShowMessage(Format('Name: %s', [LList[0]^.FEmployeeName])); finally for LReminderItem in LList do Dispose(LReminderItem); LList.Free; end; end; procedure TForm1.GetReminder(AList: TList<PReminderItem>); var LReminderItem : PReminderItem; begin // LReminderItem := TReminderItem.Create; New(LReminderItem); LReminderItem^.FEmployeeID := 1; LReminderItem^.FEmployeeName := 'Test Name'; LReminderItem^.FHireDate := Now; LReminderItem^.FLastDate := Now; LReminderItem^.FNotes := 'A Note'; AList.Add(LReminderItem); end; Thanks again Gary
  17. So how do I do it? I have tried Dispose, finally for LReminderItem in LList do Dispose(LReminderItem); LList.Free; end; I get a compiler error incompatible type if I try (No doubt wrong) using the correct type var PReminderItem : ^TReminderItem; and finally for LReminderItem in LList do begin PReminderItem := @LReminderItem; Dispose(PReminderItem); end; LList.Free; end; It compiles but I get an exception Also David notice the list is indeed a TList<TReminderItem>. if I just leave out the attempt to free the memory and just free the List I get the Memory leak
  18. For me as well! Thanks Uwe
  19. I have the same problem Access Violation ntdll.dll Also worked fine in 10.4.1 Still works just gives violation on startup From their blog Pascal Analyzer, Pascal Browser and Pascal Expert support Delphi 10.4! August 7, 2020
  20. Gary

    Database in Delphi

    Do you have tblConts linked in any way to other tables? Master/Detail?
  21. Bought the eBook recently. On chapter 8. I found several tips and explanations already that made it more than worth the price.
  22. Maybe a long shot...I have this happen from time to time and the problem is TestInsight, for no reason the 'run tests continually when idle' gets selected. IDE will seem to hang because tests are running. Drove me crazy until I found it.
  23. Gary

    Are there any free DBGrid components out there?

    I use http://www.rosinsky.cz/delphi/ his DB controls including grid are $70 whole package that includes some excellent dialogs for end user is $95. He is very responsive to support.
  24. I just found AQTime Standard on GetIt and installed it. Found an old post on how to use it. Dr.Bob Examines... #131: Delphi XE and AQtime Standard (drbob42.com) After creating a project the first step is to right click the left pane to add modules. Doing this brings up MMX Commands > , now it's displayed over everything. I just went back and tried in Delphi and when I switch back to finish this post the MMX Command popup is still on screen. From here on out it's a fight between MMX and every other menu. You can click a second time or third to eventually get what you want. This includes Delphi menu's.
  25. The problem is not with MMX but AQTime. Once I finished test driving AQTime and started work I found that it hijacked the right click. I no longer had the Delphi popup. Removed both, Re-Installed AQTime - no Delphi popup just AQTime. Removed AQTime Re-Install MMX - All is good in code land again!!
×