Problems with ADO

Problems with ADO

Question:
I was out on the Fox newsgroup and somebody posted some ADO code in Visual FoxPro that alarmed me. VFP seems to have a major problem repeatedly accessing the Field collection on the ADO recordset. There seems to be a huge memory leak. I ran the following code in Visual Basic and in VFP and the results were astonishing.

The time it takes VFP to complete the program grows exponentially as you increase the iterations of the loop, while VB stays the same. If you comment out the FOR EACH loop where it goes through the fields collection, VFP gives the same nice results as VB. What is wrong?

Here is the VFP code:

 local oConnection, oRecordSet, intOuter, oField, intLoopoConnection = createobject("adodb.connection")with oConnection .Provider = "SQLOLEDB.1" .ConnectionString = "Persist Security Info=False;"+;       "User ID=sa;Initial Catalog=Pubs;Data Source=(local)" .open()endwithfor intOuter = 1 to 20  StartTime = seconds()  oRecordSet = createobject("adodb.recordset")  with oRecordSet    .open("Select * From Customer", oConnection)    for intLoop = 1 to 5    do while not .eof            for each oField in .Fields             next oField        .movenext    enddo  endfor .close  endwith   oRecordSet = Null  ? intOuter,seconds() - StartTimeendforoConnection.closeoConnection = null

I’d appreciate any workarounds. The newsgroup is eating me alive as I’m trying to defend VFP as a serious middle-tier solution.

Answer:
The Visual FoxPro FOR EACH..ENDFOR construct appears to be slow when accessing ADO collections. Try using the FOR..ENDFOR construct instead.

For example, change the following loop (from the code sample you included):

 for each oField in .Fields next oField

to the following

 for lnField = 1 TO .Fields.Count    oField = .Fields(lnField)    ...next lnField

Share the Post:
XDR solutions

The Benefits of Using XDR Solutions

Cybercriminals constantly adapt their strategies, developing newer, more powerful, and intelligent ways to attack your network. Since security professionals must innovate as well, more conventional endpoint detection solutions have evolved

AI is revolutionizing fraud detection

How AI is Revolutionizing Fraud Detection

Artificial intelligence – commonly known as AI – means a form of technology with multiple uses. As a result, it has become extremely valuable to a number of businesses across

AI innovation

Companies Leading AI Innovation in 2023

Artificial intelligence (AI) has been transforming industries and revolutionizing business operations. AI’s potential to enhance efficiency and productivity has become crucial to many businesses. As we move into 2023, several

data fivetran pricing

Fivetran Pricing Explained

One of the biggest trends of the 21st century is the massive surge in analytics. Analytics is the process of utilizing data to drive future decision-making. With so much of

kubernetes logging

Kubernetes Logging: What You Need to Know

Kubernetes from Google is one of the most popular open-source and free container management solutions made to make managing and deploying applications easier. It has a solid architecture that makes

ransomware cyber attack

Why Is Ransomware Such a Major Threat?

One of the most significant cyber threats faced by modern organizations is a ransomware attack. Ransomware attacks have grown in both sophistication and frequency over the past few years, forcing

data dictionary

Tools You Need to Make a Data Dictionary

Data dictionaries are crucial for organizations of all sizes that deal with large amounts of data. they are centralized repositories of all the data in organizations, including metadata such as