I get the following error;
Error Number: 350
Error Text: Native SQL Error Code
Error Hint Text: Native SQL Error Code
SQL STATEMENT: INSERT INTO xcards2004 (Use_Flag,Company_Number,Company_Name,Home_Email,Work_Email,First_Name) VALUES(' ','000031352','Deloitte & Touche LLP ','michael_santoro@yahoo.com ','micsantoro@deloitte.com ','MICHAEL ')
SQL 350 STATEMENT: [Microsoft][ODBC SQL Server Driver]Timeout expired
The code is as follows;
<iINCLUDE name='d:\usersites\htdocs\admin\include_top.inc'>
<div class="d" align="center">AS/400 User Interface</div>
<ieq name="filepath1" value='d:\emaildata\'>
<ieq name="filepath2" value='.txt'>
<ieq name="filepath" value=:filepath1:CallListName:filepath2>
<ieq name="cdata" value=`}<iFile name=":filepath" op="read">`>
<iEQ name="Ctext" value="text">
<iEQ name="CLText" value=:CallListName:Ctext>
<iEQ name="begin" value="Begin">
<iREGEXLIST SRC=`:cdata` REGEX=".*}" LISTNAME="TESTLIST" MAX="10000" FLAGS="EIN">
<iEQ name=NumOfRecords value=<iListget name=TESTLIST op=count>>
<iIf cond=<iStrcmp src=<iStrlen src=`:cdata`> dst="1">>
<p align="center">
No data was transfered from the AS400.<br>
Go back to the first page and check your data.<br>
:CallListName<br>
:filepath<br>
</p>
<iElse>
<iEQ name=fieldstring value="Use_Flag,Company_Number,Company_Name,Home_Email,Work_Email,First_Name">
<iSQL DBNAME="emailerdb" SQL="CREATE TABLE :CallListName (List_ID integer NOT NULL IDENTITY,Use_Flag VARCHAR(1) NULL,Company_Number VARCHAR(9) NULL,Company_Name VARCHAR(255) NULL,Home_Email VARCHAR(255) NULL,Work_Email VARCHAR(255) NULL,First_Name VARCHAR(255) NULL)" LOGIN="tax-talentdata/tony12" ALIAS="TABLETEST">
</iSQL ALIAS="TABLETEST">
<iSQL DBNAME="emailerdb" SQL="CREATE INDEX CnameIndex ON :CallListName (Company_Name)" LOGIN="ta" ALIAS="TABLETEST2">
</iSQL ALIAS="TABLETEST2">
<iLOOP initial=1 final=:NumOfRecords>
<iEQ name=item1 value=`<iListget name=TESTLIST op=getat index=:i_loop>`>
<iREPLACE var=item1 src="}" dst="">
<iREPLACE var=item1 src="~" dst="','">
<iEQ name=finalitem1 value="'">
<iEQ name=finalitem value=":finalitem1:item1:finalitem1">
<iSQL DBNAME="emailerdb" SQL="INSERT INTO :CallListName (:fieldstring) VALUES(:finalitem)" FAILURE="ErrorIDENTIFIER: :i_error :i_errortext :i_sqlerrortext" LOGIN="ta" ESC=FALSE>
</iLOOP>
</iSql>
<p align="center">
<br>Number of Records: :NumofRecords<BR><BR>
Done!<br><br>
The data has been stored in a table called :CallListName.<br>
</p>
</iIf>
<iINCLUDE name='d:\usersites\taxtalent2\htdocs\admin\include_bottom.inc'>
This code runs for a small file of 15 records but not for 600. I have no idea what timeout happened. I checked the ODBC and SQL. I changed the IIS server timeout from 120 to 360 but no change. The timeout actually happens at about 45 seconds. The table has about 130 records in it when it fails (starts with zero).
by: LeviterPosted on 2004-11-03 at 23:29:11ID: 12490836
I think that this error does not occur on the web server, but on the SQL Server. Inside SQL Server timeouts can be defined as well (don't know exactly where).
Since the error occurs while inserting data into a table, my guess is that the table is locked at the moment of the insert and that it takes too long to be released so your data can be inserted. Are there any other processes running on the same SQL Server table? Like any other applications inserting/updating or deleting? Or is your application the only application at that moment.
What you could do is use enable tracing on the SQL Server and see what happens when you insert data.