Programming

Programming questions? Ask a programmer for answers ASAP

Ask a Computer Expert,
Get an Answer ASAP!

Below is the code I am using. My problem is I am

Customer Question
transferring data, 200 records at...
Below is the code I am using. My problem is I am transferring data, 200 records at a time from my STORE database to my PAYROLL database. My PAYROLL database has a row_ID is defined as SERIAL which I believe may be my first issue, but I am not sure.
The second issue, there are 673 records in the STORE database, but I only get a total of 4 records placed in my PAYROLL database. It appears to send the last record for each 200 sent. Any ideas on how to insert the whole 673 records into the PAYROLL database from the STORE database?
DISPLAY "Step 1 - Downloading interface records"
CALL dbiStartDatabase(STORE)
RETURNING lintProcStatus, dbengine
IF NOT lintProcStatus THEN
LET lstrProcMessage = "Unable to connect to the STORE database."
CALL libErrDialog("Error", lstrProcMessage, "exclaim", "Close")
EXIT PROGRAM
ELSE
DELETE FROM inter WHERE inter.ind IS NULL
LET ct1 = 0 {1 to 200}
LET ct2 = 0 {200/400/600}
LET ct3 = 0 {record count}
LET repeat = 0
LET reread = TRUE
LET query_text = "SELECT * FROM inter WHERE ", where_part CLIPPED
WHILE reread
PREPARE qry_pay1 FROM query_text
DECLARE pay1 CURSOR FOR qry_pay1
FOREACH pay1 INTO t_int.*
IF ct1 = 200 THEN
LET repeat = 1
EXIT foreach
END IF
LET ct3 = ct3 + 1
IF ct3 <= ct2 THEN CONTINUE FOREACH END IF
LET ct1 = ct1 + 1
LET x_int[ct1].* = t_int.*
END FOREACH
# ***** PAYROLL database now that the STORE database has
# ***** updated
CALL dbiStartDatabase("") RETURNING lintProcStatus, dbengine
IF NOT lintProcStatus THEN
CALL libErrDialog("Error","Cannot connect to database","stop","OK")
EXIT WHILE
ELSE
BEGIN WORK
FOR i = 1 TO ct1
IF SQLCA.SQLERRD[3] = 0 THEN
IF dbengine = "IFX" THEN
LET sel_stmt = "INSERT INTO inter VALUES (?,?,?,?,?,?,0,?)"
ELSE
#dbengine = "MSV"
LET sel_stmt = "INSERT INTO inter VALUES (?,?,?,?,?,?,?)"
END IF
PREPARE ins1 FROM sel_stmt
EXECUTE ins1 USING x_int.ind,
x_int.orgn_proj,
x_int.account,
x_int.fringe,
x_int.amount,
x_int.ctrl_no,
x_int.pay_run
LET rec_cnt1 = rec_cnt1 + 1
END IF
END FOR
IF repeat = 1 THEN
# ***** the STORE database
CALL dbiStartDatabase(STORE)
RETURNING lintProcStatus, dbengine
IF NOT lintProcStatus THEN
LET lstrProcMessage = "Unable to connect to the STORE database."
CALL libErrDialog("Error", lstrProcMessage, "exclaim", "Close")
EXIT PROGRAM
END IF
LET ct2 = ct2 + 200
LET ct1 = 0
LET ct3 = 0
LET repeat = 0
ELSE
LET reread = FALSE
END IF
END IF #STORE database not found
END WHILE
END IF #payroll database found
Submitted: 2 years ago.Category: Programming
Show More
Show Less
Ask Your Own Programming Question
Customer reply replied 2 years ago
sorry let me send you the code again.. Missing some steps:DISPLAY "Step 1 - Downloading interface records"CALL dbiStartDatabase(STORE)
RETURNING lintProcStatus, dbengine
IF NOT lintProcStatus THEN
LET lstrProcMessage = "Unable to connect to the STORE database."
CALL libErrDialog("Error", lstrProcMessage, "exclaim", "Close")
EXIT PROGRAM
ELSE
DELETE FROM inter WHERE inter.ind IS NULL
LET ct1 = 0 {1 to 200}
LET ct2 = 0 {200/400/600}
LET ct3 = 0 {record count}
LET repeat = 0
LET reread = TRUE
LET query_text = "SELECT * FROM inter WHERE ", where_part CLIPPEDWHILE reread
PREPARE qry_pay1 FROM query_text
DECLARE pay1 CURSOR FOR qry_pay1
FOREACH pay1 INTO t_int.*
IF ct1 = 200 THEN
LET repeat = 1
EXIT foreach
END IFLET ct3 = ct3 + 1
IF ct3 <= ct2 THEN CONTINUE FOREACH END IF
LET ct1 = ct1 + 1
LET x_int[ct1].* = t_int.*
END FOREACH
# ***** PAYROLL database now that the STORE database has
# ***** updatedCALL dbiStartDatabase("") RETURNING lintProcStatus, dbengine
IF NOT lintProcStatus THEN
CALL libErrDialog("Error","Cannot connect to database","stop","OK")
EXIT WHILE
ELSEBEGIN WORK
FOR i = 1 TO ct1
IF SQLCA.SQLERRD[3] = 0 THEN
IF dbengine = "IFX" THEN
LET sel_stmt = "INSERT INTO inter VALUES (?,?,?,?,?,?,0,?)"
ELSE
#dbengine = "MSV"
LET sel_stmt = "INSERT INTO inter VALUES (?,?,?,?,?,?,?)"
END IFPREPARE ins1 FROM sel_stmt
EXECUTE ins1 USING x_int[i].ind,
x_int[i].orgn_proj,
x_int[i].account,
x_int[i].fringe,
x_int[i].amount,
x_int[i].ctrl_no,
x_int[i].pay_run
LET rec_cnt1 = rec_cnt1 + 1
END IF
END FORIF repeat = 1 THEN
# ***** the STORE databaseCALL dbiStartDatabase(STORE)
RETURNING lintProcStatus, dbengineIF NOT lintProcStatus THEN
LET lstrProcMessage = "Unable to connect to the STORE database."
CALL libErrDialog("Error", lstrProcMessage, "exclaim", "Close")
EXIT PROGRAM
END IFLET ct2 = ct2 + 200
LET ct1 = 0
LET ct3 = 0
LET repeat = 0
ELSE
LET reread = FALSE
END IFEND IF #STORE database not found
END WHILE
END IF #payroll database found
Answered in 16 hours by:
2/28/2016
Programmer: Russell H., Programmer & Coder replied 2 years ago
Russell H.
Russell H., Programmer & Coder
Category: Programming
Satisfied Customers: 12,410
Experience: Programmer & Coder
Verified

Hi, thank you for contacting JustAnswer.com. My name is Russell. I will do my best to provide the right answer to your question.

Obviously your problem is something to do with the modulus of 200: 200/400/600 (and no further since the database in question is over 600 but less than 800 records long.)

There are only a few places, in the code you cited, where the modulus of 200 is mentioned, and here I quote those places, demarcated by -------------------------- :

------------------------------------------------------------------

LET ct1 = 0 {1 to 200}

LET ct2 = 0 {200/400/600}

------------------------------------------------------------------

FOREACH pay1 INTO t_int.*

IF ct1 = 200 THEN

LET repeat = 1

EXIT foreach

------------------------------------------------------------------

NOTE: I think the previous segment is the problem area. It obviously counts only one of 200.

------------------------------------------------------------------

LET ct2 = ct2 + 200

LET ct1 = 0

LET ct3 = 0

LET repeat = 0

ELSE

LET reread = FALSE

-----------------------------------------------------------

LET ct1 = 0 {1 to 200}
LET ct2 = 0 {200/400/600}
LET ct3 = 0 {record count}
LET repeat = 0
LET reread = TRUE
LET query_text = "SELECT * FROM inter WHERE ", where_part CLIPPED

WHILE reread
PREPARE qry_pay1 FROM query_text
DECLARE pay1 CURSOR FOR qry_pay1
FOREACH pay1 INTO t_int.*
IF ct1 = 200 THEN
LET repeat = 1
EXIT foreach
END IF

----------------------------------------------------------------------

sorry let me send you the code again.. Missing some steps:

DISPLAY "Step 1 - Downloading interface records"

CALL dbiStartDatabase(STORE)
RETURNING lintProcStatus, dbengine
IF NOT lintProcStatus THEN
LET lstrProcMessage = "Unable to connect to the STORE database."
CALL libErrDialog("Error", lstrProcMessage, "exclaim", "Close")
EXIT PROGRAM
ELSE
DELETE FROM inter WHERE inter.ind IS NULL
LET ct1 = 0 {1 to 200}
LET ct2 = 0 {200/400/600}
LET ct3 = 0 {record count}
LET repeat = 0
LET reread = TRUE
LET query_text = "SELECT * FROM inter WHERE ", where_part CLIPPED

WHILE reread
PREPARE qry_pay1 FROM query_text
DECLARE pay1 CURSOR FOR qry_pay1
FOREACH pay1 INTO t_int.*
IF ct1 = 200 THEN
LET repeat = 1
EXIT foreach
END IF

LET ct3 = ct3 + 1
IF ct3 <= ct2 THEN CONTINUE FOREACH END IF
LET ct1 = ct1 + 1
LET x_int[ct1].* = t_int.*
END FOREACH

# ***** PAYROLL database now that the STORE database has
# ***** updated

CALL dbiStartDatabase("") RETURNING lintProcStatus, dbengine
IF NOT lintProcStatus THEN
CALL libErrDialog("Error","Cannot connect to database","stop","OK")
EXIT WHILE
ELSE

BEGIN WORK
FOR i = 1 TO ct1
IF SQLCA.SQLERRD[3] = 0 THEN
IF dbengine = "IFX" THEN
LET sel_stmt = "INSERT INTO inter VALUES (?,?,?,?,?,?,0,?)"
ELSE
#dbengine = "MSV"
LET sel_stmt = "INSERT INTO inter VALUES (?,?,?,?,?,?,?)"
END IF

PREPARE ins1 FROM sel_stmt
EXECUTE ins1 USING x_int.ind,
x_int.orgn_proj,
x_int.account,
x_int.fringe,
x_int.amount,
x_int.ctrl_no,
x_int.pay_run
LET rec_cnt1 = rec_cnt1 + 1
END IF
END FOR

IF repeat = 1 THEN
# ***** the STORE database

CALL dbiStartDatabase(STORE)
RETURNING lintProcStatus, dbengine

IF NOT lintProcStatus THEN
LET lstrProcMessage = "Unable to connect to the STORE database."
CALL libErrDialog("Error", lstrProcMessage, "exclaim", "Close")
EXIT PROGRAM
END IF

LET ct2 = ct2 + 200
LET ct1 = 0
LET ct3 = 0
LET repeat = 0
ELSE
LET reread = FALSE
END IF

END IF #STORE database not found
END WHILE
END IF #payroll database found

------------------------------------------------------------------------

Somewhere in that code something about the selection of data, or the transfer of data, from the source database is only being activated once in the count (or modulus) of 200.

Do you agree, so far?

Ask Your Own Programming Question
Customer reply replied 2 years ago
i agree that is what it does now and all i get in the Payroll database is 4 records.
Programmer: Russell H., Programmer & Coder replied 2 years ago

4 records, at 200th, 400th, 600th... and one more, possibly 1st record?

Why does this part of the code resemble a select-one-in-200 code mechanism?:

FOREACH pay1 INTO t_int.*

IF ct1 = 200 THEN

LET repeat = 1

EXIT foreach

It's the part that most resembles the root of the problem, though there are other suspect areas.

Ask Your Own Programming Question
Customer reply replied 2 years ago
I cannot allow a remote connection. The reason the 200 records are selected at a time. Is that moving 200 records from one database to another is more manageable for IFX or MVS. But i need to be able to do the FOR loop to also INSERT all 200 records. I'm just not sure how to do that in the FOR loop or even if it should be a FOR loop.
Programmer: Russell H., Programmer & Coder replied 2 years ago

OK. Somehow you set it up so the record transfer is

1 every 200 records

not

200 records at a time, then another 200, to the end.

A set of FOR loops should do it. Here's an outline:

x = 1

For x=1 to end-of-table in steps of 200

For y=1 to 200 REM in steps of 1 each.

z=x+y

put one record from first db (record # ***** ) in the cache for the transfer

NEXT

transfer records from the cache to the second db.

NEXT

REM end-of-table reached. Transfers in sets of 200 records is done.

Ask Your Own Programming Question
Programmer: Russell H., Programmer & Coder replied 2 years ago

Actually that code outline is not quite accurate, and may skip a few records.

x = 0

For x=0 to end-of-table in steps of 200

For y=1 to 200 REM in steps of 1 each.

z=x+y

put one record from first db (record # ***** ) in the cache for the transfer

NEXT

transfer records from the cache to the second db.

NEXT

REM end-of-table reached. Transfers in sets of 200 records is done.

Ask Your Own Programming Question
Customer reply replied 2 years ago
I guess I'm still not getting it. Can you show me exactly where to put the code you wrote? I'm still just getting 4 records.
Customer reply replied 2 years ago
I'm not understanding and I feel that my answer is not really an answer but more of a teaching basic code structure. Do you believe i should rewrite the FOREACH loop or are you saying i should include the FOR loop with in the FOREACH loop? I have been experimenting with both logic and still not getting all 673 records, just 4, the last record in each 200th record.I needed more of a exact code logic and that i why a paid for detailed level question. Do you believe you could give me a more defective answer to my code issue or do i need to request another Programmer to assist.I was looking to have this issue resolved by Monday Morning which is about 10 hours away.
Programmer: Russell H., Programmer & Coder replied 2 years ago

I give up the case, with apologies. I have Opted Out.

Ask Your Own Programming Question
Was this answer helpful?
Ask Russell H. Your Own Question
Russell H.
Russell H.
Russell H., Programmer & Coder
Category: Programming
Satisfied Customers: 12,410
12,410 Satisfied Customers
Experience: Programmer & Coder

Russell H. is online now

A new question is answered every 9 seconds

How JustAnswer works:

  • Ask an ExpertExperts are full of valuable knowledge and are ready to help with any question. Credentials confirmed by a Fortune 500 verification firm.
  • Get a Professional AnswerVia email, text message, or notification as you wait on our site. Ask follow up questions if you need to.
  • 100% Satisfaction GuaranteeRate the answer you receive.

JustAnswer in the News:

Ask-a-doc Web sites: If you've got a quick question, you can try to get an answer from sites that say they have various specialists on hand to give quick answers... Justanswer.com.
JustAnswer.com...has seen a spike since October in legal questions from readers about layoffs, unemployment and severance.
Web sites like justanswer.com/legal
...leave nothing to chance.
Traffic on JustAnswer rose 14 percent...and had nearly 400,000 page views in 30 days...inquiries related to stress, high blood pressure, drinking and heart pain jumped 33 percent.
Tory Johnson, GMA Workplace Contributor, discusses work-from-home jobs, such as JustAnswer in which verified Experts answer people’s questions.
I will tell you that...the things you have to go through to be an Expert are quite rigorous.

What Customers are Saying:

My Expert answered my question promptly and he resolved the issue totally. This is a great service. I am so glad I found it I will definitely use the service again if needed.

One Happy CustomerNew York

Wonderful service, prompt, efficient, and accurate. Couldn't have asked for more. I cannot thank you enough for your help.

Mary C.Freshfield, Liverpool, UK

This expert is wonderful. They truly know what they are talking about, and they actually care about you. They really helped put my nerves at ease. Thank you so much!!!!

AlexLos Angeles, CA

Thank you for all your help. It is nice to know that this service is here for people like myself, who need answers fast and are not sure who to consult.

GPHesperia, CA

I couldn't be more satisfied! This is the site I will always come to when I need a second opinion.

JustinKernersville, NC

Just let me say that this encounter has been entirely professional and most helpful. I liked that I could ask additional questions and get answered in a very short turn around.

EstherWoodstock, NY

Thank you so much for taking your time and knowledge to support my concerns. Not only did you answer my questions, you even took it a step further with replying with more pertinent information I needed to know.

RobinElkton, Maryland

< Previous | Next >

Meet the Experts:

ATLPROG

ATLPROG

Computer Software Engineer

7,677 satisfied customers

MS in IT.Several years of programming experience in Java C++ C C# Python VB Javascript HTML

LogicPro

LogicPro

Computer Software Engineer

7,131 satisfied customers

Expert in C, C++, Java, DOT NET, Python, HTML, Javascript, Design.

unvadim

unvadim

Computer Software Engineer

1,168 satisfied customers

Good knowledge of OOP principles. 3+ years of programming experience with Java and C++. Sun Certified Java Programmer 5.0.

lifesaver

lifesaver

Computer Software Engineer

950 satisfied customers

Several years of intensive programming and application development experience in various platforms.

ehabtutor

ehabtutor

Computer Software Engineer

936 satisfied customers

Bachelor of computer science, 5+ years experience in software development, software company owner

TheDoctor

TheDoctor

Software Engineer

893 satisfied customers

M.S. in Internet Information Systems

The-PC-Guy

The-PC-Guy

Software Engineer

800 satisfied customers

Extensive Knowledge in PHP, MYSQL, CSS & Javascript

< Previous | Next >

Related Programming Questions
Implement a program that prints paychecks for a group of
Implement a program that prints paychecks for a group of student assistants. … read more
LogicPro
LogicPro
Computer Software Engineer
Bachelor of Technology
7,131 satisfied customers
Trying to make a column of job codes, they should be 4
Trying to make a column of job codes, they should be 4 digits (so need to include leading zeros) and concatenate with ".01" but can't get the result to be 0000.00 format. … read more
George Sibiya
George Sibiya
PhD
284 satisfied customers
Is there someone that could help write a .NET program for
Is there someone that could help write a .NET program for me? VB .NET … read more
George Sibiya
George Sibiya
PhD
284 satisfied customers
Can you help me with web portal. Using phprunner with sql.
Can you help me with web portal JA: Is there a specific language you're coding in? Customer: Using phprunner with sql JA: What's your objective for this SQL project? Customer: And I is windows JA: Any… read more
George Sibiya
George Sibiya
PhD
284 satisfied customers
I need helped with my C++ coding assignment? I just need the
Hi I need helped with my C++ coding assignment? I just need the actual code to put in to my Icloud9 to make my program run? Would like if someone could review what I have so far and explain what code … read more
George Sibiya
George Sibiya
PhD
284 satisfied customers
In C program. Write functions that: (a) Print all even
In C program. Write functions that: (a) Print all even numbers between 0 and 40. (b) Print all numbers between 1 and 100, with 10 numbers on each line. Use two for loops. All columns should be aligned… read more
LogicPro
LogicPro
Computer Software Engineer
Bachelor of Technology
7,131 satisfied customers
I am trying to write a code that generates the the koch
i am trying to write a code that generates the the koch snowflake with n iterations … read more
Chris Baxter
Chris Baxter
28 satisfied customers
I have a server and client assignment based off the last
Hey i have a server and client assignment based off the last assignment i am stucked with processing datacommented lines in gameplayframe is data needed to sent to server when client calls the frameco… read more
LogicPro
LogicPro
Computer Software Engineer
Bachelor of Technology
7,131 satisfied customers
Checkbook I want a formula to subtract column A from column
Checkbook I want a formula to subtract column A from column G and add add column F to column g … read more
Jason Jones
Jason Jones
AAS Information Technology
6,322 satisfied customers
I'm looking for some MVC design help for a PHP bulk webpage
I'm looking for some MVC design help for a PHP bulk webpage test tool I'm building. I can tell you what I've done already, or I can tell you what the program does and we can go from there. … read more
George Sibiya
George Sibiya
PhD
284 satisfied customers
PPT for MAC file now cannot open says corrupted. I'm running
PPT for MAC file now cannot open says corrupted. I'm running Mac 10.13.4 and PPT newest update. Crashed before I did PPT updates. File is 4 gig (I imbed videos) but critical need for Monday. Any ideas… read more
David L.
David L.
Bachelor\u0027s Degree
6 satisfied customers
I have my excel spreadsheet with subscribers name and email
I have my excel spreadsheet with subscribers name and email saved on excel and the A row or column? is all clunched up and I can't read it, the other colums are intruding onto A column if you see what… read more
Jason Jones
Jason Jones
AAS Information Technology
6,322 satisfied customers
I'm using VB 6 and trying to copy an ACCESS database and
I'm using VB 6 and trying to copy an ACCESS database and rename it. I can do that now using DBEngine.compactDatabase but now I'm trying do it with a password ***** database and having no luck. … read more
George Sibiya
George Sibiya
PhD
284 satisfied customers
How do I make variables declared in a macro available to a
How do I make variables declared in a macro available to a calledPersonal.xlsb macro? … read more
The-PC-Guy
The-PC-Guy
Software Engineer
Bachelor's Degree
800 satisfied customers
How can I change the site header and tag line font size?
How can I change the site header and tag line font size? … read more
Pete
Pete
Engineer
Bachelor\u0027s Degree
1,130 satisfied customers
I have a report that gives me customer number, part number,
I have a report that gives me customer number, part number, date sold and other various sales data for a particular month. I am trying to write a formula that will give me the most recent date for a p… read more
George Sibiya
George Sibiya
PhD
284 satisfied customers
VBA Question. I define a function in VBA but an not able to.
VBA Question. I define a function in VBA but an not able to … read more
The-PC-Guy
The-PC-Guy
Software Engineer
Bachelor's Degree
800 satisfied customers
I have Data obtained from a Computer Program that I would
I have Data obtained from a Computer Program that I would like to trend - a valve could be 103 but on the trend graph it gives a Zero. Also each of the block where the number is ***** a little green c… read more
Michael Rademacher
Michael Rademacher
MBA
10 satisfied customers
Disclaimer: Information in questions, answers, and other posts on this site ("Posts") comes from individual users, not JustAnswer; JustAnswer is not responsible for Posts. Posts are for general information, are not intended to substitute for informed professional advice (medical, legal, veterinary, financial, etc.), or to establish a professional-client relationship. The site and services are provided "as is" with no warranty or representations by JustAnswer regarding the qualifications of Experts. To see what credentials have been verified by a third-party service, please click on the "Verified" symbol in some Experts' profiles. JustAnswer is not intended or designed for EMERGENCY questions which should be directed immediately by telephone or in-person to qualified professionals.

Disclaimer: Information in questions, answers, and other posts on this site ("Posts") comes from individual users, not JustAnswer; JustAnswer is not responsible for Posts. Posts are for general information, are not intended to substitute for informed professional advice (medical, legal, veterinary, financial, etc.), or to establish a professional-client relationship. The site and services are provided "as is" with no warranty or representations by JustAnswer regarding the qualifications of Experts. To see what credentials have been verified by a third-party service, please click on the "Verified" symbol in some Experts' profiles. JustAnswer is not intended or designed for EMERGENCY questions which should be directed immediately by telephone or in-person to qualified professionals.

Show MoreShow Less

Ask Your Question

x