Call AddRow() After All ProcessInputRow() Are Called In A Script Component
Jan 12, 2007
Hi Guys,
I am new to SSIS. Heree is the transformation I need to do. In database one, I have tables:
A
B
C
Where B is a detailed table of A, and C is a "derived" table of B. There is a one to one relationship between B and C, but there may be more than one record in B for each record in A.
In database two, we have the table structure:
AA
CC
And there is a one to one relationship between AA and CC. And I need to design a transformation to migrate data from database one to database two.
Table A(->AA) and B(->BB) will be easy, just one to one migration.
The mapping rule for table C(->CC) they decided was: I need to concate each record in B and C and for a record in CC. For example, suppose we have:
A1
B1(C1)
B2(C2)
A2
B3(C3)
B4(C4)
B5(C5)
Then we will have the following records in database two:
A_1
(B1+C1+B2+C2)
A2
(B3+C3 + B4+C4 + B5+C5)
I looked through all the stock data flow components, and it seems to me that none of them can perform this task, so I am thinking to design a Script transform component to do the task.
I have written the script:
in each ProcessInputRow() sub, I check record's foreign key to A, and if they are the same I concate the records, then I put them into a VB.NET collection. Once all the records are processed, in the PostExecute() function, I count the number of new rows, (in the above example 2), then I call AddRow to add the rows, by:
OutputBuffer.AddRow()
But this does not work, I got "Object reference not set to an instance of an object". It seems that in PostExecute, the OutputBuffer is not longer valid?
Help please! :)
Is there a better way of doing what I am trying to do?
Thanks!
Wenbiao
View 1 Replies
ADVERTISEMENT
Nov 7, 2007
Hi,
I'm trying to create a script component which produces several rows for each row in the input stream on the output stream. I'm testing it with an OLE Source -> Script Component -> Flat File in a dataflow. Everything works fine for small input, but I keeping getting an exception from the call to AddRow() on the output buffer with large input sets. For example, I can reproduce the failure with this minimal testcase:
Code Block
Public Overrides Sub ProcessInput(ByVal InputID As Integer, ByVal Buffer As Microsoft.SqlServer.Dts.Pipeline.PipelineBuffer)
If Not Buffer.EndOfRowset Then
While Buffer.NextRow()
Output0Buffer.AddRow()
End While
End If
Output0Buffer.SetEndOfRowset()
End Sub
I can increase the number of rows processed before failing by playing with the DefaultBufferMaxRows, but it still fails. I've pasted the error message below. Any help would be appreciated!
at Microsoft.SqlServer.Dts.Pipeline.Wrapper.IDTSBuffer90.AddRow(IntPtr ppRowStart)
at Microsoft.SqlServer.Dts.Pipeline.PipelineBuffer.AddRow()
at Microsoft.SqlServer.Dts.Pipeline.ScriptBuffer.AddRow()
at ScriptComponent_1b906150cbf147c69f8fe3967301ca55.Output0Buffer.AddRow()
at ScriptComponent_1b906150cbf147c69f8fe3967301ca55.ScriptMain.ProcessInput(Int32 InputID, PipelineBuffer Buffer)
at Microsoft.SqlServer.Dts.Pipeline.ScriptComponentHost.ProcessInput(Int32 inputID, PipelineBuffer buffer)
View 3 Replies
View Related
May 1, 2008
Hi
Wrote this snipet of code to use Insert Into. I have an ODBC connection to Oracle with the Tables linked. I can edit, add write querries and do everything I need to do except do an Insert Into. So I am thinking it is my code and seeking guidance.
I select add data from a button on the form. It then calls the code below. I know it is making it up to the db.execute statement and failing at that point. Funny thing is I only get the error "ODBC Call Failed" and no other snippets of information. On top of that I can not relink to the tables as they are now unaccessible and I have to completely close down the program and restart. Any help/assistance will be greatly appreciated. Thank you, Here is the code:
Code Start:
Private Sub btn_add_rca_record_Click()
On Error GoTo Err_btn_add_rca_record_Click
Dim db As Database
Dim rsCust As Recordset
Dim strSQL As String
Dim nbrRcaTicketId As Long
Set db = CurrentDb
nbrRcaTicketId = (100 + (DCount("*", "RCA_TABLE")))
strSQL = "Select * from RCA_TABLE "
Set rsCust = db.OpenRecordset(strSQL, DB_OPEN_DYNASET)
MsgBox "start of sql string"
strSQL = "INSERT INTO RCA_TABLE "
strSQL = strSQL & "( RCA_TICKET_ID, REPORT_AUTHOR_STAFF_ID, REPORT_START_DATE, REPORT_CLOSE_DATE, REPORTS_PARTICIPANTS_REVIEW, "
strSQL = strSQL & " INCIDENT_TICKET_NUMBER,INCIDENT_SEVERITY_LEVEL,INCIDENT_START_DATE_EVENT,INCIDENT_START_TIME_EVENT,INCIDENT_TIME_SERVICE_DOWN,INCIDENT_END_DATE_EVENT,INCIDENT_TIME_SERVICE_UP,INCIDENT_TIME_UP_TO_CUSTOMER,INCIDENT_OUTAGE_DURATION,INCIDENT_DETECTION_METHOD,INCIDENT_DISCOVERED_BY,INCIDENT_RESP_GROUP,INCIDENT_OWNER,INCIDENT_PRODUCTS_AFFECTED,INCIDENT_CUSTOMERS_AFFECTED, "
strSQL = strSQL & " CHANGE_EXTENT_AFFECTED, CHANGE_CAUSED_BY_CHANGE, CHANGE_RFC_NUMBER, CHANGE_BACK_OUT_INITIATED, CHANGE_RFC_FOLLOWUP_NUMBER, "
strSQL = strSQL & " PROBLEM_OWNER, PROBLEM_CATEGORY, PROBLEM_STATUS, PROBLEM_IMPACT, PROBLEM_URGENCY, "
strSQL = strSQL & " INCIDENT_SECONDARY_TICKET_NBR,INCIDENT_EVENT_DESCRIPTION,PROBLEM_DETAILS,DISCUSSION_DONE_RIGHT,DISCUSSION_PROCEDURAL_ISSUE,DISCUSSION_BETTER_NEXT_TIME,DISCUSSION_PREVENT_PROBLEM,PROBLEM_WWORKAROUND )"
strSQL = strSQL & " ALT_TICKET1,ALT_SYSTEM1,ALT_STATUS1,ALT_DATE_OPENED1,ALT_DATE_CLOSED1,ALT_SEVERITY_LEVEL1,ALT_PRIMARYOWNER1,ALT_LINK1,ALT_TICKET2, "
strSQL = strSQL & " ALT_SYSTEM2,ALT_STATUS2,ALT_DATE_OPENED2,ALT_DATE_CLOSED2,ALT_SEVERITY_LEVEL2,ALT_PRIMARYOWNER2,ALT_LINK2 )"
strSQL = strSQL & " values ('"
strSQL = strSQL & nbrRcaTicketId & "','"
strSQL = strSQL & Me!nbr_REPORT_AUTHOR_STAFF_ID & "','"
strSQL = strSQL & Me!dte_Report_Start_Date & "','"
strSQL = strSQL & Me!dte_Report_Close_date & "','"
strSQL = strSQL & Me!str_Report_Paticipants_In_Review & "','"
strSQL = strSQL & Me!nbr_Incident_Ticket_Number & "','"
strSQL = strSQL & Me!nbr_Incident_Severity_Level & "','"
strSQL = strSQL & Me!dte_Incident_Start_date & "','"
strSQL = strSQL & Me!dte_Incident_Start_Time_Event & "','"
strSQL = strSQL & Me!dte_Incident_Time_Service_Down & "','"
strSQL = strSQL & Me!dte_Incident_End_date & "','"
strSQL = strSQL & Me!dte_Incident_Time_Service_Up & "','"
strSQL = strSQL & Me!dte_Incident_Time_Up_To_Customer & "','"
strSQL = strSQL & Me!nbr_Incident_Outage_Duration & "','"
strSQL = strSQL & Me!nbr_Incident_Detection_Method & "','"
strSQL = strSQL & Me!nbr_Incident_Discovered_By & "','"
strSQL = strSQL & Me!nbr_Incident_Resp_Group & "','"
strSQL = strSQL & Me!str_Incident_Owner & "','"
strSQL = strSQL & Me!str_Incident_Products_Affected & "','"
strSQL = strSQL & Me!str_Incident_Customers_Affected & "','"
strSQL = strSQL & Me!str_Change_Extent_Affected & "','"
strSQL = strSQL & Me!str_Change_Caused_by_Change & "','"
strSQL = strSQL & Me!nbr_Change_RFC_Number & "','"
strSQL = strSQL & Me!str_Change_Back_out_Initiated & "','"
strSQL = strSQL & Me!nbr_Change_RFC_Followup_Number & "','"
strSQL = strSQL & Me!nbr_Problem_Owner & "','"
strSQL = strSQL & Me!nbr_Problem_Category & "','"
strSQL = strSQL & Me!nbr_Problem_Status & "','"
strSQL = strSQL & Me!nbr_Problem_Impact & "','"
strSQL = strSQL & Me!nbr_Problem_Urgency & "','"
strSQL = strSQL & Me!nbr_Incident_Secondary_Ticket_Numbers & "','"
strSQL = strSQL & Me!str_Incident_Event_Description & "','"
strSQL = strSQL & Me!str_Problem_Details & "','"
strSQL = strSQL & Me!str_Discussion_Done_Right & "','"
strSQL = strSQL & Me!str_Discussion_Procedural_Issue & "','"
strSQL = strSQL & Me!str_Discussion_Better_Next_Time & "','"
strSQL = strSQL & Me!str_Discussion_Prevent_Problem & "','"
strSQL = strSQL & Me!str_Problem_WWorkaround & "','"
strSQL = strSQL & Me!nbr_ALT_TICKET1 & "','"
strSQL = strSQL & Me!nbr_ALT_SYSTEM1 & "','"
strSQL = strSQL & Me!nbr_ALT_STATUS1 & "','"
strSQL = strSQL & Me!dte_ALT_DATE_OPENED1 & "','"
strSQL = strSQL & Me!dte_ALT_DATE_CLOSED1 & "','"
strSQL = strSQL & Me!nbr_ALT_SEVERITY_LEVEL1 & "','"
strSQL = strSQL & Me!nbr_ALT_PRIMARYOWNER1 & "','"
strSQL = strSQL & Me!str_ALT_LINK1 & "','"
strSQL = strSQL & Me!nbr_ALT_TICKET2 & "','"
strSQL = strSQL & Me!nbr_ALT_SYSTEM2 & "','"
strSQL = strSQL & Me!nbr_ALT_STATUS2 & "','"
strSQL = strSQL & Me!dte_ALT_DATE_OPENED2 & "','"
strSQL = strSQL & Me!dte_ALT_DATE_CLOSED2 & "','"
strSQL = strSQL & Me!nbr_ALT_SEVERITY_LEVEL2 & "','"
strSQL = strSQL & Me!nbr_ALT_PRIMARYOWNER2 & "','"
strSQL = strSQL & Me!str_ALT_LINK2 & "');"
db.Execute strSQL
MsgBox nbrRcaTicketId & " has been added to the Customer table."
Call ClearControls
rsCust.Close
db.Close
Exit_btn_add_rca_record_Click:
Exit Sub
Err_btn_add_rca_record_Click:
MsgBox Error$
rsCust.Close
db.Close
GoTo Exit_btn_add_rca_record_Click:
End Sub
Code End:
View 1 Replies
View Related
Sep 2, 2007
I have a custom component that has no editor (i.e. NoEditor=TRUE in DtsPipelineComponent attribute).
This component derives all of its metadata based on the input (hence no editor is needed). What this means is that if the input changes in any way (e.g. the datatype of a column changes) my component will fail validation. That's not a problem, the problem is my Validate() method returns DTSValidationStatus.VS_NEEDSNEWMETADATA but ReinitializeMetaData() is not being called.
I get the familiar warning from the component:
Warning 1 Validation warning. Data Flow Task: Normaliser: The component has inconsistent metadata. TestHarness.dtsx 0 0
and when I double-click on the component I get the familiar dialog box:
TITLE: Editing Component
------------------------------
The component is not in a valid state. Do you want the component to fix itself automatically?
------------------------------
BUTTONS:
&Yes
&No
Cancel
------------------------------
but when I click on 'Yes', nothing happens. RMD never gets called.
The workaround is to detach and reattach the input (which results in a call to ReinitializeMetadata() ) or set NoEditor=FALSE in DtsPipelineComponent attribute but I'd rather not have to do that because strictly speaking the user has no need to edit the component through advanced properties.
Is there another way around this problem? Is there a way to call RMD on a component that has no editor?
Thanks
Jamie
[Microsoft follow-up]
View 9 Replies
View Related
Feb 9, 2007
Appreciate if anyone can show me the code to call a web service from Script Component ?
I cannot use the Web Service Task. Because parameters to the webservice are from rows of data inside Data Flow Task.
Thanks !!
View 11 Replies
View Related
Jul 26, 2006
Just wondering if it's possible to call a package from within a script component. I'd think so, but not quite sure how to.
Thanks,
Jeff Tolman
E&M Electric
View 4 Replies
View Related
Jun 13, 2006
hi,
I was just trying to add COM reference but I don't see how.
Let me know any info about this.
TIA
View 5 Replies
View Related
Nov 9, 2006
We have schedule process server, calling SSIS package via command line (see below) to physical SSIS server. Get message "insufficient for component" and package call bombs.
Facts:
1. schedule process server has Workstation tools / Clients / Connectivity for SSIS loaded
2. SSIS is 2005, SP1
What are we missing?
c:>dtexec /DTS "File SystemSalesDWgyp_dm_carrier" /SERVER BPATLQDDW /CONFIGFILE "\bpatlqddwd$SSISSalesDWgypdm.dtsconfig" /MAXCONCURRENT " -1 " /CHECKPOINTING OFF /REPORTING V
Error: 2006-11-09 10:43:34.94
Code: 0xC00470FE
Source: DTF - Xfer DW to DM DIM_CARRIER DTS.Pipeline
Description: The product level is insufficient for component "Slowly Changing Dimension" (289).
End Error
Error: 2006-11-09 10:43:34.94
Code: 0xC00470FE
Source: DTF - Xfer DW to DM DIM_CARRIER DTS.Pipeline
Description: The product level is insufficient for component "OLE DB Command" (775).
End Error
Warning: 2006-11-09 10:43:34.94
Code: 0x80019002
Source: gyp_dm_carrier
Description: The Execution method succeeded, but the number of errors raised (2) reached the maximum allowed (1); resulting in failure. This occurs when the number of errors reaches the number specified in MaximumErrorCount. Change the MaximumErrorCount or fix the errors.
End Warning
DTExec: The package execution returned DTSER_FAILURE (1).
Started: 10:43:32 AM
Finished: 10:43:34 AM
Elapsed: 2.383 seconds
View 6 Replies
View Related
Jan 16, 2006
I tried to access a dot net assembly (.dll) file in ssis script component using following steps.
Create new Script Task in Data Flow Task
Edit Design Script button-> Loads script Project in MS VSA
Locate Object Browser
Select Custom Component Set from the dropdown and hit browse button
Browse and place the custom component dll (This Custom component dll has to be in GAC - Global assembly cache before browsing)
Select the namespace from the Component list of the object browser and click on €œAdd to references to Selected project in the solution explorer€? button
Write Imports <namespace> in the script code to invoke class methods from the .NET custom component
The following steps worked properly with June CTP version of yukon.In september CTP version of Yukon in SSIS when i browse the dot net assembly with the same above steps i get a error stating " The file could not be browsed ".Can anybody help me in the same.
Prashant Utekar
View 1 Replies
View Related
Dec 18, 2007
I am trying to cleanly shutdown a dataflow task, which contains a script component, when RunningPackage.Stop() is called from the SSIS runtime.
I've been going in ever decreasing circles with no success - it looks like the cleanest way to find out whether RunningPackage.Stop() has been called is to call FireQueryCancel(). But I can't find any reference to anything useful in a dataflow task script component that gives me something that implements IDTSComponentEvents. The nearest thing seems to be Me.ComponentMetaData which gives a reference to IDTSComponentMetaData90, but this only has methods for calling FireError, FireInformation, FireProgress, FireWarning, and FireCustomEvent. But no FireQueryCancel.
Is there a way in a script component that I can find out the state of QueryCancel?
Any help would be apprecieated.
View 2 Replies
View Related
Oct 26, 2007
Hello,
I have a package that has a data lfow task. this task imports data from a db2 database (using the IBM Ole DB provider fro db2) and adds it to sql server database table. This package was created on the server. then though version control (using TFS source control) I check out the package on my local machine. and when I open the package I get the foll 3 errors.
Error 1 Validation error. Import Account Num from BMGP_BDR: DTS.Pipeline: The component metadata for "component "DataReader Source" (1113)" could not be upgraded to the newer version of the component. The PerformUpgrade method failed.
Error 2 Error loading BMAG Download Xref Tables - bmag.dtsx: Microsoft.SqlServer.Dts.Pipeline.ComponentVersionMismatchException: The version of component "DataReader Source" (1113) is not compatible with this version of the DataFlow. [[The version or pipeline version or both for the specified component is higher than the current version. This package was probably created on a new version of DTS or the component than is installed on the current PC.]] at Microsoft.SqlServer.Dts.Pipeline.ManagedComponentHost.HostCheckAndPerformUpgrade(IDTSManagedComponentWrapper90 wrapper, Int32 lPipelineVersion)
Error 3 Error loading BMAG Download Xref Tables - bmag.dtsx: The component metadata for "component "DataReader Source" (1113)" could not be upgraded to the newer version of the component. The PerformUpgrade method failed.
Please advice.
Thank you.
View 7 Replies
View Related
Jan 23, 2007
Hi,
I have a package which reads an Access file from a folder. My connection manager to this file is .NET providers for OledbMicrosoft Jet 4.0 OLE DB Provider.
Package works from my computer. But when I execute it on the server as a SQL Agent job, I get
The component metadata for "component "DataReader Source" (1) could not be upgraded to the newer version of the component. The PerformUpgrade method failed.
I copied the mdb file to a folder on the server which my packages have no problem reading data from.
My packages run under the same domain account as defined in proxies.
Appreciate a help.
Gulden
View 4 Replies
View Related
Mar 19, 2008
Hi,
I am producing a php report using SQL queries to show the SLA status of our calls. Each call has response, fix & completion targets. If any of these targets are breached, the whole SLA status is set as 'Breach'.
The results table should look like the one below:
CallRef.
Description
Severity
ProblemRef
Logged
Date
Call
Status
SLA Status
C0001
Approval for PO€™s not received
2
DGE0014
05-01-06 14:48
Resolved
Breach
C0002
PO€™s not published
2
DGE0014
06-01-06 10:21
Resolved
OK
C0003
Approval for PO€™s not received from Siebel.
2
n/a
05-01-06 14:48
Investigating
OK
Whereas I can pick the results for the first 6 columns from my Select query, the 'SLA Status' column requires the following calculation:
if (due_date < completed_date)
{ sla_status = 'OK';
}
else sla_status = 'Breach';
The Select statement in my query is looking like this...
Select Distinct CallRef, Description, Severity, ProblemRef, Logdate, Status, Due_date, Completed_date;
The problem is that my query is returning multiple entries for each stage of the call (see below), whereas I just want one entry for each call, with SLA status 'Breach' if any of the stages for the call were out of SLA.
CallRef.
Description
Severity
ProblemRef
Logged
Date
Call
Status
SLA Status
C0001
Approval for PO€™s not received
2
DGE0014
05-01-06 14:48
Resolved
Breach
C0001
Approval for PO€™s not received
2
DGE0014
05-01-06 14:48
Resolved
OK
C0001
Approval for PO€™s not received
2
DGE0014
05-01-06 14:48
Resolved
Breach
Any help will be much much appreciated, this issue has been bothering me for some time now!!!
View 7 Replies
View Related
Mar 16, 2007
In a Data Flow, I have the necessity to use a SSIS variable of type €œObject€? inside Script Component and assign to it the content of 'n' variables of string type.
On exiting from the script the variable of type object should contain something like in the following lines:
AAAAAAAAAAAAAAAAAAAAAAAAAAAAA
BBBBBBBBBBBBBBBBBBBBBBBBBBBBB
CCCCCCCCCCCCCCCCCCCCCCCCCCCCC
DDDDDDDDDDDDDDDDDDDDDDDDDDDDD
€¦€¦€¦€¦€¦€¦€¦.
€¦€¦€¦€¦€¦€¦€¦.
On exiting from the data flow I will use the variable of type Object in a Script Task, by reading each element in a cyclic fashion.
Is there anyone who have experienced something like this? Could anyone provide any example of that?
Thanks in advance!
View 3 Replies
View Related
Aug 13, 2007
Hi all
I'm into a project which uses a lot of views for joining 2 or more tables. Using the MERGE component in SSIS will be a huge effort coz it only has 2 inputs and I gotta SORT the input too.
Isnt it possible to have a VIEW like component that joins more than 2 tables and DOESNT need sorting??
(I've thought about creating views in database engine but it breaks my data floe in SSIS and is'nt a practical solution)
View 4 Replies
View Related
Mar 30, 2006
I am writing a custom dataflow transformation component and I need to get the name of the preceeding component.
I have been trying to find a way to get a reference to the Package object, MainPipe object or IDTSPath90 object (connecting to the IDTSInput90 of my component) from my component because I think from there I can get to the information I want.
Does anyone have any suggestions?
TIA . . . Ed
View 7 Replies
View Related
Nov 27, 2007
No idea where this bug crept in from. Have been using SSIS for 1.5 years now without hitting this problem.
I had a script component opening an XML document and parsing it using XPATH. I added some code that uses StreamReader / Streamwriter (closing one stream before starting the other). The code works without issue in my C# app.
And it ran without issue 2-3 times in SSIS. Then suddenly after running my package again, the script component says it completes successfully, yet nothing happens. I set a breakpoint on the first line of code - it never hits it. I add a msgbox as the first line of code - and it never displays.
I then close my package / exit out of ssis ... and then re-open it. When i open my script component, all of my code is GONE. All references that I added are gone.
I tried adding the streamreader/writer process to a dll I created from my c# app ... and added the DLL to the package -- same result.
I can reproduce this on 2 different computers.
Anyone experience this problem ? Any idea how to stop it ? Or debug it ?
Here is a slimmed down code sample of what causes the error :
Public Class ScriptMain
Public Sub Main()
Try
Dim xmlDoc As New XmlDocument
xmlDoc.Load("c:ulkasync_86281519_20070628045850225_4.xml")
MsgBox("xmlLoaded") --this doesn't display once the package starts "acting up"
Catch ex As Exception
MsgBox(ex.Message)
UpdateXML("c:ulkasync_86281519_20070628045850225_4.xml", ex.Message)
End Try
Dts.TaskResult = Dts.Results.Success
End Sub
Private Sub UpdateXML(ByVal fileName As String, ByVal message As String)
Try
Dim invalidChar As String = message.Trim().Substring(message.Trim().IndexOf("0x"), 4)
Dim rd As StreamReader = New StreamReader(fileName)
Dim xml As String = rd.ReadToEnd()
Xml = Xml.Replace(invalidChar, String.Empty)
xml = xml.Replace("", String.Empty)
xml = xml.Replace("<![CDATA[<![CDATA[", "<![CDATA[")
xml = xml.Replace("]]>]]>", "]]>")
MsgBox("replaced")
rd.Close()
Dim wr As StreamWriter = New StreamWriter(fileName)
wr.Write(xml)
wr.Close()
Dim xdoc As XmlDocument = New XmlDocument()
xdoc.Load(fileName)
Catch ex As Exception
UpdateXML(fileName, ex.Message)
End Try
End Sub
End Class
View 4 Replies
View Related
Mar 11, 2008
Hi,
I just want to know how do you called when you are accessing another pc thru \. I forgot how it is called.
Second, I like to know what [MACH] and [INST]. They don't look like directories.
\MultforestHEALTH[MACH][INST]HEALTH_WAREHOUSEDeploy_20080228p_Vitals_FACT.sql'
View 9 Replies
View Related
Jan 16, 2004
How can I execute or access a web page from a DTS package?
Both SQL server AND website are hosted on the same server (a Dual 2.4Gz Xeon with 2Gb RAM, RAID 5 etc)
I have 2 tables in SQL server 2000 that hold orders. These need to be posted into another table at a predefined time (ie: 4:30pm) and at the same time, access a remote address (a web service) and post certain elements of the order back.
Basically, can anyone help me out on how to execute a web page from a DTS.
I do NOT want to access a DTS from a webpage, which is all I'm finding at the moment.
View 5 Replies
View Related
Oct 17, 2001
Hello,
Question is, when I try to create relationships in SQL 7 without using the wizard..upon adding the tables I get an errror message that says "Coinitialization has not been called". What does this mean?
View 1 Replies
View Related
Jan 24, 2007
CREATE PROCEDURE sp_getT
@m1 int ,
@txn int ,
@Pan varchar(50) ,
@Act varchar(50) OUTPUT,
@Bal Decimal(19,4) OUTPUT,
@CBal Decimal(19,4) OUTPUT
AS
declare @pBal money, @pCbal money, @pAct money
SET NOCOUNT ON
IF @m1 = 200
BEGIN
IF @txn = 31
BEGIN
exec ChkBal @Pan, @pBal output, @pCbal output, @pAct out
END
END
SET @Act = @pAct
SET @Bal = cast(@pBal as Decimal(19,4))
SET @CBal = cast(@pCBal as Decimal(19,4))
return @Act
return @Bal
return @CBal
the above code returns this error message
"Server: Msg 8144, Level 16, State 2, Procedure CheckBalance, Line 0
Procedure or function ChkBal has too many arguments specified."
How do i specify all the arguments i want in the called procedure?
View 14 Replies
View Related
Jul 31, 2007
Hi everyone -
I'm stumped on what to cal this, there might even be
a method or pattern named for what i am trying to accomplish...
In the database, a number field is included on each table
When the DAL reads the record from the database, it is passed to
the client - work is possibly done to the record and is sent
back to the DAL for update.
A query is done against the table to retrieve the record again,
the numbers are compared - if they don't match, it is assumed the record
been modified by another user/thread/activity. An error is returned to the client stating the data has been changed.
if the numbers match, the record is updated with the number field being incremented by one.
what is this methodology called (beside crap :-) )
thanks
tony
View 7 Replies
View Related
Mar 30, 2006
Hello, perhaps you guys have heard this before in the past, but here iswhat I'm looking for.I have a SQL 2000 table with Social security numbers. We need tocreate a Member ID using the Member's real SSN but since we are notallowed to use the exact SSN, we need to add 1 to each number in theSSN. That way, the new SSN would be the new Member ID.For example:if the real SSN is: 340-53-7098 the MemberID would be 451-64-8109.Sounds simply enough, but I can't seem to get it straight.I need this number to be created using a query, as this query is areport's record source.Again, any help would be appreciated it.
View 9 Replies
View Related
Jan 19, 2007
Hi
I have a drop down list which gets populated from database but I want to add the default value as
--Select----
View 4 Replies
View Related
Apr 22, 2008
This seems like a basic question but I have not been able to find the answer in the help files or by searching this forum.
Is a trigger called for each row updated or is it called once for all rows updated?
for example if I have:
Code Snippet
CREATE TRIGGER mytrigger
ON mytable
AFTER UPDATE
AS
BEGIN
EXEC e-mail-me inserted, N'mytrigger', getdate()
END
and I do this
Code Snippet
UPDATE mytable
SET mycolumn = N'whatever'
WHERE ID > 5 AND ID <= 10
Assuming there is a record for each nteger value of ID, than will mytrigger run 5 times (once for each row updated) or one time (with inserted containing all 5 rows)?
View 3 Replies
View Related
May 6, 2008
Hi,
When a column is evaluated against an UDF in a SELECT ... or WHERE ... It makes sense that the UDF is called for every row of the SELECT. But is it still true if the UDF is called in a subquery as below?
Code Snippet
SELECT LineID, AnyText FROM dbo.UdfTest WHERE LineID IN (SELECT LineID FROM dbo.F_Bogus())
I've made a test and the SQL Profiler Trace shows that the UDF is called only once.
Can anyone confirm if my test is valid and most importantly that the UDF is called only once? FYI, I never use sub queries. This is to clarify a technical detail for our performance investigation.
Thank in advance for any help.
Here is the code to setup the test:
USE NorthWind
GO
CREATE TABLE dbo.UdfTest (
LineID int Identity(1,1) NOT NULL,
AnyText varchar(200) COLLATE database_default NOT NULL
)
GO
INSERT dbo.UdfTest (AnyText) VALUES ('Test1')
INSERT dbo.UdfTest (AnyText) VALUES ('Test2')
INSERT dbo.UdfTest (AnyText) VALUES ('Test3')
GO
CREATE FUNCTION dbo.F_Bogus (
)
RETURNS @tab TABLE (
LineID int NOT NULL,
AnyText varchar(100) COLLATE database_default NOT NULL)
AS
BEGIN
INSERT @tab (LineID, AnyText) VALUES (1, 'UDF1')
INSERT @tab (LineID, AnyText) VALUES (2, 'UDF2')
INSERT @tab (LineID, AnyText) VALUES (3, 'UDF3')
INSERT @tab (LineID, AnyText) VALUES (4, 'UDF4')
INSERT @tab (LineID, AnyText) VALUES (5, 'UDF4')
RETURN
END
GO
Here is the capture of SQL Profiler when executing the statement:
SELECT LineID, AnyText FROM dbo.UdfTest WHERE LineID IN (SELECT LineID FROM dbo.F_Bogus())
SQL:BatchStarting SELECT LineID, AnyText FROM dbo.UdfTest WHERE LineID IN (SELECT LineID FROM dbo.F_Bogus()) 51 2008-05-06 17:58:31.543
SQLtmtStarting SELECT LineID, AnyText FROM dbo.UdfTest WHERE LineID IN (SELECT LineID FROM dbo.F_Bogus()) 51 2008-05-06 17:58:31.543
SPtarting SELECT LineID, AnyText FROM dbo.UdfTest WHERE LineID IN (SELECT LineID FROM dbo.F_Bogus()) 51 2008-05-06 17:58:31.577
SPtmtCompleted -- F_Bogus INSERT @tab (LineID, AnyText) VALUES (1, 'UDF1') 51 2008-05-06 17:58:31.577
SPtmtCompleted -- F_Bogus INSERT @tab (LineID, AnyText) VALUES (2, 'UDF2') 51 2008-05-06 17:58:31.577
SPtmtCompleted -- F_Bogus INSERT @tab (LineID, AnyText) VALUES (3, 'UDF3') 51 2008-05-06 17:58:31.577
SPtmtCompleted -- F_Bogus INSERT @tab (LineID, AnyText) VALUES (4, 'UDF4') 51 2008-05-06 17:58:31.577
SPtmtCompleted -- F_Bogus INSERT @tab (LineID, AnyText) VALUES (5, 'UDF4') 51 2008-05-06 17:58:31.577
SPtmtCompleted -- F_Bogus RETURN 51 2008-05-06 17:58:31.577
SQLtmtCompleted SELECT LineID, AnyText FROM dbo.UdfTest WHERE LineID IN (SELECT LineID FROM dbo.F_Bogus()) 51 2008-05-06 17:58:31.543
SQL:BatchCompleted SELECT LineID, AnyText FROM dbo.UdfTest WHERE LineID IN (SELECT LineID FROM dbo.F_Bogus()) 51 2008-05-06 17:58:31.543
View 5 Replies
View Related
Aug 20, 2007
My package inserts rows into tables with triggers.
The triggers are not being called.
What might be causing this?
View 1 Replies
View Related
Oct 12, 2005
Hello everyone:
I have some nightly jobs that execute stored procedure to call the tables? I want to know which table are called by these stored procedures. Is it possible? Any idea will be appreciated.
Thanks
ZYT
View 5 Replies
View Related
Oct 13, 2007
I am encountering an issue which is effecting our production environment, none of our sql jobs are now saving any kind of job history, nor are the status of the jobs being saved.
I have run a profiler trace and it seems as if procedure : sp_sqlagent_log_jobhistory is not being called during the execution of any of our jobs
Has anyone else encountered anything similar?
View 3 Replies
View Related
May 3, 2006
Hi
In a stored procedure the following code snippet 1 checks against duplicate data being inserted. I've tested it with snippet 2 and it works as expected. However, when the procedure is called from ASP.NET the check seems ineffective. I still get the error msg. The application uses a SqlDataSource with the following parameters.
Any suggestions?
Thanks,
Bakis.
PS I want to ask a question on the ASP.NET forum .The login/pwd for this forum "get me in" to the .net forum in the sense that when I log in I see a logout link. I don't get an "ask a question" button though. Is there a separate screening for each forum?
<UpdateParameters>
<asp:Parameter Name="CatItemUID" Type="Int32" />
<asp:Parameter Name="CatName" Type="String" />
<asp:Parameter Name="Item" Type="String" />
<asp:Parameter Name="Quad" Type="Int16" />
<asp:Parameter Name="UID" Type="Int64" />
</UpdateParameters>
snippet 1 :
if (@CatItemComboExists > 0 )
BEGIN
--print @CatItemComboExists
return 0
END
snippet 2:
begin tran
declare @return_status int
EXECUTE @return_status = spUpdateCatItemRec 343, 'blah','blih', 2,3
print @return_status
rollback
error msg only if proc is called from app
Violation of UNIQUE KEY constraint 'IX_tblCatItemUID'. Cannot insert duplicate key in object 'tblCatItemUID'.
View 3 Replies
View Related
Oct 12, 2006
I am maintaining some C# and ASP.NET code with SQL server 2000. My code calls a stored procedure. The code is a little confusing as to the name of the SQL Server stored procedure that is calling. At this point I don't know how to trace into or debug the stored procedure. Kind of hard to do in the first place when you are not absolutely certain as to the stored proc to be called.I can take an educated guess as to which stored procedure is being called. I figure if I can deliberately make a certain stored procedure fail then this might be able to somehow give me the name of the stored proc that I am calling.So is there a way to do this. Namely make a stored procedure fail, or to return the name of the stored Proc?I would sincerely appreciate some help with this problem.
View 1 Replies
View Related
Feb 23, 2007
Im using a SqlDataSource control. Ive got my "selectcommand" set to the procedure name, the "selectcommandtype" set to "storedprocedure"What am i doing wrong ? Ive got a Sql 2005 trace window open and NO sql statements are coming through "ds" runat="server" ConnectionString="<%$ ConnectionStrings:myConnectionString %>" SelectCommand="my_proc_name" SelectCommandType="StoredProcedure">
"txtF1" Name="param1" Type="String" />
"txtF2" Name="param2" Type="String" />
"" FormField="txtF3" Name="param3" Type="String" />
"" FormField="txtF4" Name="param4" Type="String" />
View 2 Replies
View Related
Sep 12, 2005
Hi All,I have a report ASP.NET page that allow users to run a report by clicking a buttion to call a store procedure to generate the report, however, the store procedure is taking a few minutes to return the data, thus I got the 'timeout' error message on my page. How do I extend the time on my page?Thanks
View 3 Replies
View Related