Jump to content

Kyle Miller

  • Content Count

  • Joined

  • Last visited

Everything posted by Kyle Miller

  1. FireDAC randomly raises the following error when I call StartTransaction. What causes this? A workaround? ================================ FireDAC info ================================ Tool = RAD Studio 10.4 FireDAC = 27.0.0 (Build 99682) Platform = Windows 32 bit Defines = FireDAC_NOLOCALE_META;FireDAC_MONITOR ================================ Client info ================================ Loading driver MSSQL ... Loading odbc32.dll driver manager Creating ODBC environment handle Searching for ODBC driver ... Checking for ODBC driver [SQL SERVER NATIVE CLIENT 11.0] ... Found [SQL Server Native Client 11.0] Driver Manager version = 03.81.14393.0000 ================================ Session info ================================ Current catalog = Current schema = dbo Driver name = sqlncli11.dll Driver version = 11.00.7462 Driver conformance = 3 DBMS name = Microsoft SQL Server DBMS version = 12.00.6164
  2. Kyle Miller

    Delphi 10.4, FireDac, StartTransaction causes ODBC error.

    I did suspect that, i.e. a transaction left open on Form1 causing a problem on Form2. Turned out to not be the case. Like Michael said, there was a stored procedure returning a result set but was executed with ExecProc.
  3. Kyle Miller

    Delphi 10.4, FireDac, StartTransaction causes ODBC error.

    Michael, You are exactly right. I went back through all the stored procedures and found one which returns a result set. It's not used, but it is present. Thank you for the tip! πŸ‘
  4. Kyle Miller

    Delphi 10.4, FireDac, StartTransaction causes ODBC error.

    That's a good thing to check, but it isn't the case here. The only code executed before the StartTransaction is the non-database releated. I did find the situation causing the error, but I don't know why. I have one form open to a record. I open another form, a different form, and open it to the same record in same table. When StartTransaction fires, there's an error. When I close Form1, StartTransaction fires no error. My first suspension was an event alerter on Form1 causing an issue, but Form2 has not performed any CRUD yet when the error is raised. Also, execution never hits the event alerter's event when Form2 performs its action. As a workaround, I'll probably shove all the Delphi logic into a stored procedure & avoid StartTransaction.
  5. Here is a user experience answer to your technical question. Why pull in a few thousand records into a grid? "The user is looking for a record." If the user is finding a needle in a haystack, why make the haystack so large? Provide a search facility to narrow down the results. No user is going to read thousands of records in a single pull. On the technical question, narrow down if it's the grid or dataset. Disconnect the grid. Perform navigations in code, i.e. First, Last, Next, etc. Time it using TStopWatch. Reasonable speed? How does the speed change using a local vs TCP/IP connection? Verify setup using this info... https://docwiki.embarcadero.com/RADStudio/Sydney/en/Connect_to_Firebird_(FireDAC)
  6. This is with a "premier financial services company in Jacksonville, FL." I don't think this is PNC, the company I just posted about. Inquire for more info. From my inbox... Hello, My name is Spencer Honeycutt; I am a Technical Recruiter with Software Guidance & Assistance. I came across your resume and wanted to know more about your current work situation and also let you know about an opportunity that I have. Please take a look at the description I have attached below and see if it is a position that may be of interest to you, or if you know anyone you can refer for this. If so, please feel free to e-mail me with an updated Word version of your resume and the best way to reach you or any referrals you may have. Software Guidance & Assistance, Inc., (SGA), is searching for a Remote Delphi Developer (w/JavaScript) assignment with one of our premier Financial Services clients in Jacksonville, FL (REMOTE). ***CONTRACT THROUGH MARCH 2022*** ***FULLY REMOTE SUPPORTING EAST COAST HOURS*** Top Skills Needed: Delphi JavaScript SQL/SQL Server .Net a BIG plus Responsibilities: Analyzes, designs, programs, debugs, and modifies software enhancements and/or new products used in local, networked, or Internet-related computer programs. Code must be used in the core version of applications available for sale commercially and not that which is customized to meet a specific client's implementation of the application. Interacts with product managers and/or users to define system requirements and/or necessary modifications. Participates in software design meetings and analyzes user needs to determine technical requirements. Writes technical specifications based on conceptual design and stated business requirements. Writes code, completes programming, and performs testing and debugging of applications using current programming languages and technologies. Completes documentation and procedures for installation and maintenance. Trains and communicates with internal Client Training, Client Relationship, and Sales teams on systems application. May be responsible to develop or execute project plans, budgets, and schedules and for documenting work and results. May deliver informational and decision-seeking presentations to technical and business groups to internal and/or external audiences. Performs additional related duties as assigned. Required Skills: A Bachelor's degree in Computer Engineering, Computer Science or other related discipline; or equivalent combination of education and experience that is required for the specific job level. Must have experience writing Delphi code (OOP language) Must have experience with JavaScript, SQL, and SQL Server Hands on experience with .NET would be helpful & a plus Knowledge of end-to-end systems development life cycles (e.g., waterfall, iterative and other modern approaches to software development) Knowledge of standards relevant to the software industry (e.g., ISO, CMM, Six Sigma) Knowledge of banking practices, regulations and operations within assigned line(s) of business In-depth understanding of design patterns and their application Fluency in developing and understanding sequence diagrams, class models, etc. Proficiency in solutions design and requirements definition disciplines leveraging model driven design based tools and techniques including conceptual solution component models, business process models, use cases, etc. Outstanding verbal and written communication skills to technical and non-technical audiences of various levels in the organization (e.g., executive, management, individual contributors) Excellent analytical, decision-making, problem-solving, team, and time management skills Ability to persuade and influence others on the best approach to take Ability to estimate work effort for project sub-plans or small projects and ensure the project is successfully completed Positive outlook, strong work ethic, and responsive to internal and external clients and contacts Willingly and successfully fulfills the role of teacher, mentor and coach May require in-depth knowledge of networking, computing platform, storage, database, security, middleware, network and systems management, and related infrastructure technologies and practices SGA is a technology and resource solutions provider driven to stand out. We are a women-owned business. Our mission: to solve big IT problems with a more personal, boutique approach. Each year, we match consultants like you to more than 1,000 engagements. When we say let's work better together, we mean it. You'll join a diverse team built on these core values: customer service, employee development, and quality and integrity in everything we do. Be yourself, love what you do and find your passion at work. Please find us at https://sgainc.com. EEO Employer: Race, Color, Sex, Sexual Orientation, Gender Identity, Religion, National Origin, Disability, Veteran Status, Age, Marital Status, Pregnancy, Genetic Information, or Other Legally Protected Status. If this one is not the best fit for you, you can still send your latest resume and let me know what you are looking for. Best regards, Spencer Honeycutt –Technical Recruiter SGA – Software Guidance & Assistance, Inc. 1311 N. Westshore Blvd., Suite 114, Tampa, FL 33607 Direct: (914) 366-5970 Office: (914) 366-5900 Fax: (914) 206-4204
  7. Posted hours ago... https://www.dice.com/jobs/detail/Software-Developer-Sr&#45Delphi-(Tempus)-PNC-Financial-Services-Auburn-IN-46706/10156811/R067111 "As a Software Developer Sr. (Delphi) within PNC's Tempus Technologies organization, you will be based in any of the locations within the PNC footprint."
  8. Kyle Miller

    PNC Financial Services (USA, Delphi)

    Try this one... https://www.pncinsidetrack.com/job/13504295/software-developer-remote/
  9. Remote debugging is working fine except for when the app tries to connect to the database server. When trying to open the TFDConnection, the following error occurs: First chance exception at $75F125F2. Exception class EMSSQLNativeException with message '[FireDAC][Phys][ODBC][Microsoft][SQL Server Native Client 11.0]Unable to complete login process due to delay in opening server connection'. The app connects without an issue when run on the remote machine from the scratch directory. Are there special preparations I need to take to enable remote debugging with FireDAC & SQL Server?
  10. Kyle Miller

    Remote Debugging w/FireDAC & SQL Server

    Good info. Nice to know the facility exists. It would not have helped here. If the connection timeout is 30 seconds & failing, retrying at the same value would results in continuous failures. The fix is to allow more connection time in a remote debug environment. I've never needed retries before as connections are always stable where I've worked. Outside remote debugging, the client machine connects to the server in less than a second in this case.
  11. Kyle Miller

    Remote Debugging w/FireDAC & SQL Server

    The 2nd link seemed helpful. There's no retry for FireDAC I know, but I did increase the LoginTImeout to 300 seconds. I didn't think it would be a problem since I'm connected via broadband, but I guess connecting was just outside the default 30 second timeout. Thanks.
  12. Kyle Miller

    ERD tool needed!

    Context Database Designer. https://www.contextsoft.com/products/designer/index.php Affordable. However, not upgraded since 2018. Not sure that matters. Idera's Aqua Data Studio has a modeler along with DB admin and DB development. Comes with Delphi Architect or as standalone. https://www.aquafold.com/aquadatastudio Tried DbSchema. It's okay & cheap but wouldn't recommend. DataGrip has some modeling abilities. Achilles heal is performance with large databases, like Great Plain Dynamics database.
  13. Kyle Miller

    Remote desktop friendly

    I was working with a project over RDP using 10.4.1. My usual session was to connect, do work, and disconnect (not logoff). When I reconnected in a subsequent session, the IDE would very slowly redraw itself onto the screen. It's much better with 10.4.2 from start and while working.
  14. I saw this opportunity pop up. They're located in Abilene, Texas U.S. and write software for the oil & gas industry. The ad says open to remote work. I'd guess U.S. only. https://www.indeed.com/viewjob?jk=dd95941bac348323
  15. Using Delphi 10.4.1 w/connection transaction level set to dirty read. When I execute a stored procedure, which also executes set trans iso level to uncommitted, the stored procedure doesn't see an update performed in the app. Here is the outline of events -- FDCon.StartTrans FDDataSet.FieldX.AsInteger := 12 FDDataSet.Post FDStoredProc.Exec ... Here the stored proc selects FieldX and see it as null, not 12. Why? FDCon.Commit I want the stored procedure to see the uncommitted values posted by the app. EDIT: Cancel request. Turns out to be a stored procedure bug.
  16. Kyle Miller

    Set focus to IDE editor

    How you return to the editor when focus is on the Code Explorer, i.e. the tree, member search bar, etc? The release notes for MMX 9.0 says pressing escape should do it, but it's not working. I'm using Delphi 10.4.1 & MMX 15.0.20 build 2385.
  17. Kyle Miller

    MARS & Delphi 10.2

    I tried the latest release. Several build failures during install. I noticed commits address the issues, so I pulled the head. It installs. Trying to build MARSHelloWorld & it's complaining of numerous items missing in SynTable.pas. It may be affected by me commenting out {$I MARS.inc} in Server.Forms.Main because the inc file is not included. I tried using the one in C:\Development\ExtLib\MARS\Source to no avail. Do I need to install mORMot to use MARS?
  18. Kyle Miller

    MARS & Delphi 10.2

    Never mind. Removed a reference to an Delphi MVC Framework installation I wasn't using. It was the source of conflict.
  19. Given a table with a blob field where the value might take several seconds to pull down, what's the best way to lazy fetch the data w/o blocking the user interface? The BLOB is an image displayed on a form. The blob is being pulled in a detail query as to not slow the master query down. TFDFetchOptions allows delaying until BLOB needed. This results in a similar problem. When user clicks record, user has to wait till BLOB pulled down. Also tried ASync as described in wiki under Asynchronous Open and Fetching. The problem is either the living binding errors with "couldn't find text" or an exception is raised when jumping back and forth between two records, one with a blob and one without. I even tried a TTask solution. The goal is to lazy load the BLOB and display the image if it comes down. If the user clicks to another row, abandon the BLOB fetch and display the new row's image if present. EDIT: Using Delphi 10.2 Enterprise.
  20. This is exactly what I did using TTask and TThread. It was as close as I could get to a working solution. Problems arose when jumping between records quickly. Tried calling FireDac's AbortJob method to making aborting more graceful. It didn't go well. I'll try using a connection per thread and possibly test out TZMethodThread.
  21. Given: 1. Database is MSSQL 2. TFDQuery & an TFDUpdateSQL assigned as the update object. 3. TFDUpdateSQL.InsertSql executes a stored procedure to perform insert, which affects a number of tables. 4. TFDUpdateSQL.InsertSql stored procedure returns an ID field value, which is the key field in TFDQuery. Ex: UserId. 5. UserId is an AutoInc TField in the TFDQuery. What is the proper way to push the value returned by the stored procedure into the AutoInc field on an inserted record? Previous methods I used are not working. Here is some code that does NOT work: declare @SysUserId int; exec dbo.SysUserUpdate @SysUserID = @SysUserID output, @UserName = :UserName, @Password=:Password, @FullName = :FullName, @EmailAddress = :EmailAddress, @CompanyLocationId = :CompanyLocationId, @IsActive = :IsActive, @SysApplicationKey = :SysApplicationKey, @ModuleAccess1 = :ModuleAccess1, @ModuleAccess2 = :ModuleAccess2, @PolicyAccess1 = :PolicyAccess1, @PolicyAccess2 = :PolicyAccess2 select :SysUserId=@SysUserId
  22. Perfect. Thank you guys.
  23. Thanks for the reply. I changed the Select as you have. No dice. The autoinc field still says -1 after InsertSql runs. Any properties on the TFDAutoIncField or TFDQuery to check?
  24. Kyle Miller

    Telegram integration?

    There is a Delphi Dev channel. But a channel which echos every post here? That would be noisy.