Jump to content

Kyle Miller

Members
  • Content Count

    28
  • Joined

  • Last visited

Posts posted by Kyle Miller


  1. I am searching for a number pattern in a string, e.g. 123-12 or 123-1234. 123-13-123, 123-123-1234, 123-12x are not a matches.

     

    This pattern, \d+-\d+(?=[\s$]) , works except when the number is the only thing in the string, i.e. '123-12' with no spaces following. Add a space on the end, and RegEx works. This was tested in Delphi XE.

     

    What am I missing?

     

     


  2. Basic question: Skia4Delphi is more than GPU integration. It requires the GPU. Correct?

     

    I ask because I tried running some apps with Skia enabled on Terminal server, and they crashed hard. They run fine on local desktop.


  3. 6 hours ago, Hans J. Ellingsgaard said:

    Your problem might have something to do with nested transactions. If your db or your odbc driver don't support nested transactons, make shure there is no ongoing transaction on the same connectionm, before you call StartTransaction.

     

    Something like this:

        if FDConnection1.InTransaction then
           FDConnection1.Commit;
     

        FDConnection1.StartTransaction;

    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.


  4. On 9/3/2021 at 12:14 AM, Michael Longneck said:

    That's happened because somewhere called TFDQuery.ExecSQL or TFDStoredProc.ExecProc but SQL stored proc return result set, which obviously not fetched but not discard. And now any attempt to StartTransaction (internally it's just turn off autocommit) will be failed with this "clear and detailed" error message.

     

    There's two options - call Query.Disconnect(True) or call Open instead ExecSQL\ExecProc.

    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! 👍


  5. 18 hours ago, Michael Longneck said:

    That's happened because somewhere called TFDQuery.ExecSQL or TFDStoredProc.ExecProc but SQL stored proc return result set, which obviously not fetched but not discard. And now any attempt to StartTransaction (internally it's just turn off autocommit) will be failed with this "clear and detailed" error message.

     

    There's two options - call Query.Disconnect(True) or call Open instead ExecSQL\ExecProc.

    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.


  6. FireDAC randomly raises the following error when I call StartTransaction.

     

    image.png.43c67d0cca4588fb20f181349592cd86.png

     

    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

     


  7. 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) 

     


  8. 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


  9. 15 hours ago, emailx45 said:

    hi @Kyle Miller

     

    have you read this?

    http://docwiki.embarcadero.com/RADStudio/Sydney/en/Recovering_Connection_(FireDAC)

     

    another thing, you can use a "while looping" and create a "reTry" alternative for "n" time include waiting "n" seconds or another time. you see?

     

    hug

    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.


  10. 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?


  11. 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.


  12. 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.


  13. 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.

     

    Quote

    We are actively seeking a skilled software developer to join the ERP Development Team at WolfePak Software. The ideal candidate will have an understanding of object-oriented design and development and be proficient in an object-oriented programming language. This Software Developer role involves performing application changes and enhancements to various modules of WolfePak ERP Software, including design, development, testing and documentation of the related changes.

     

    Qualifications

    • Bachelor's degree in Computer Science, IS or related field required
    • 7+ years of software development experience preferred
    • Experience with Delphi preferred
    • Working knowledge of and/or experience with at least one object-oriented programming language; e.g. Object Pascal, Java, C#, C++, etc.
    • Ability to design, develop, debug, test and implement application solutions according to project requirements
    • Familiarity with relational databases, SQL, and client/server architecture
    • Motivated, self-directed individual who works well as part of a team
    • Strong initiative to handle complex problems and break them down into manageable units
    • Ability to drive a plan and/or project thru to completion
    • Be a quick learner with an ability to master new tools, technologies and concepts

    Key Responsibilities

    • Write well designed, testable, documented code from project requirements that are provided
    • Implement software changes with the awareness and sensitivity of impact to the system as a whole
    • Learn and adhere to the adopted coding standards used by the ERP Development Team
    • Learn and become proficient with Delphi and all other necessary development tools
    • Learn and gain familiarity with WolfePak ERP Software

    Daily Tasks

    • Monitor your software development change requests and implement changes for requests based on priority
    • Review requirements for system changes and enhancements, analyze those requests and translate them to necessary programming changes
    • Perform necessary designing, coding, debugging, testing and documentation (using the Delphi IDE and any other necessary tools)
    • Check in corresponding application changes using our version control system (currently using GitHub)

     

    WolfePak offers a remote work environment, generous PTO, and a compensation structure that includes a bonus program, paid health insurance and retirement plan. We have a positive culture designed around core values of Customer Focus, Integrity, Teamwork and Innovation. WolfePak is dedicated to individual growth opportunities and we would love the opportunity to discuss with you in more detail!

    To apply for this position, please email your resume (in Microsoft Word or PDF format) to jobs@wolfepak.com referencing Software Developer in the subject line.

     

    https://www.indeed.com/viewjob?jk=dd95941bac348323


  14. 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.


  15. 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.

    Quote

    Pressing Escape in the Explorer Class Tree or Member List sets focus to the IDE Code Editor

    I'm using Delphi 10.4.1 & MMX 15.0.20 build 2385.


  16. 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?

     

    image.thumb.png.6b7533e446e13f53f420bff91bcdbccf.png


  17. On 6/14/2020 at 3:22 PM, aehimself said:

    My solution was to unhook all datasets from any datasources, and call the dataset's .Open method in a separate thread, Once the thread finishes it executes a callback routine to hook the datasets back to the datasources. This resulted a completely unblocked VCL thread, and I even could implement a button to execute the "Abort" command through the same connection if the user does not want to wait until the end of the query.

    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.


  18. 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.

×