Delete from 3 tables
I have 3 tables I need to delete partial data from.
ObservedSpeciesCollectionMethodID CollectionMethodID ObservedSpeciesID
109150 29
222898
109149 29
222897
109148 19
222900
109147 19
222899
ObservedSpeciesMeasurementID ObservedSpeciesID NumericValueHigh
79608 222898 2
79607 222897 1
79606 222900 4
79605 222899 3
ObservedSpeciesID ObservationSiteID SpeciesID
222898 146620 1108
222897 146620 1053
222900 146620 1108
222899 146620 1053
Table names are:
ObservedSpeciesCollectionMethod
ObservedSpeciesMeasurement
ObservedSpecies
The only information I have is CollectionMethodID and ObservationSiteID.
So if CollectionMethodID = 19:
Delete rows 3 and 4 from all 3 tables.
Any help is greatly appreciated
Try
declare @CollectionMethodToDelete int= 19;declare @ObservationSiteID int = 146620;
if object_ID('TempDB..#DeleteSpecies', N'U') IS NOT NULL DROP TABLE #DeleteSpecies
select ObservedSpeciesID
into #DeleteSpecies
from ObservedSpeciesCollectionMethod CM
where CollectionMethodID = @CollectionMethodToDelete and not exists (select 1
from ObservedSpeciesCollectionMethod CM1 where CM1.ObservedSpeciesID = CM.ObservedSpeciesIDAND CM.CollectionMethodID <> CM1.CollectionMethodID) -- we're OK to delete the species that were only observed by that method
try
begin transaction
delete from ObservedSpeciesMeasurement where ObservedSpeciesID IN (select ObservedSpeciesID from #DeleteSpecies)
delete from ObservedSpeciesCollectionMethod where CollectionMethodID = @CollectionMethodToDelete
delete from ObservedSpecies where ObservedSpeciesID IN (select ObservedSpeciesID from #DeleteSpecies)AND ObservationSiteID = @ObservationSiteID;
commit transaction
end try
begin catch
DECLARE @ErrorSeverity INT
,@ErrorNumber INT
,@ErrorState INT
,@ErrorLine INT
,@ErrorProc NVARCHAR(200);
-- Grab error information from SQL functions
SET @ErrorSeverity = ERROR_SEVERITY();
SET @ErrorNumber = ERROR_NUMBER();
SET @ErrorMessage = ERROR_MESSAGE();
SET @ErrorState = ERROR_STATE();
SET @ErrorLine = ERROR_LINE();
SET @ErrorProc = ERROR_PROCEDURE();
SET @ErrorMessage = 'Problem deleting species. SQL Server Error Message is: ' + CAST(@ErrorNumber AS VARCHAR(10)) + ' in procedure: ' + @ErrorProc + ' Line: ' + CAST(@ErrorLine AS VARCHAR(10)) + ' Error text: ' + @ErrorMessage;
-- Not all errors generate an error state, to set to 1 if it's zero
IF @ErrorState = 0
SET @ErrorState = 1;
-- If the error renders the transaction as uncommittable or we have open transactions, we may want to rollback
IF @@TRANCOUNT > 0
BEGIN
ROLLBACK TRANSACTION
END
RAISERROR (
@ErrorMessage
,@ErrorSeverity
,@ErrorState
,@ErrorNumber
END CATCH
For every expert, there is an equal and opposite expert. - Becker's Law
My blog
My TechNet articles
Similar Messages
-
Hello Experts.
I am getting error when deleting from table.
please help me.I had given my error.
If possible also tell me how to trace this error.
java.lang.IndexOutOfBoundsException: Index: 3, Size: 3
at java.util.ArrayList.RangeCheck(ArrayList.java:507)
at java.util.ArrayList.get(ArrayList.java:324)
at com.sap.tc.webdynpro.progmodel.context.Node$ElementList.getElement(Node.java:2034)
at com.sap.tc.webdynpro.progmodel.context.Node.isMultiSelected(Node.java:841)
at com.sap.tc.webdynpro.progmodel.context.Node.isMultiSelected(Node.java:839)
at try1.comp1.TableView.onActionDelete_Entry(TableView.java:191)
at try1.comp1.wdp.InternalTableView.wdInvokeEventHandler(InternalTableView.java:191)
at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.invokeEventHandler(DelegatingView.java:87)
at com.sap.tc.webdynpro.progmodel.controller.Action.fire(Action.java:67)
at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doHandleActionEvent(WindowPhaseModel.java:420)
at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:132)
at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:335)
at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:143)
at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:299)
at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessingStandalone(ClientSession.java:759)
at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:712)
at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:261)
at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:149)
at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doContent(DispatcherServlet.java:62)
at com.sap.tc.webdynpro.serverimpl.defaultimpl.DispatcherServlet.doPost(DispatcherServlet.java:53)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:387)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:365)
at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:944)
at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:266)
at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:160)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)This Is the code of delete function.
//@@begin onActionDelete_Entry(ServerEvent)
int Count=wdContext.nodePerson().size();
int LeadSelcection=wdContext.nodePerson().getLeadSelection();
for(int i=0;i<Count;i++)
if( (i==LeadSelcection) || wdContext.nodePerson().isMultiSelected(i))
wdContext.nodePerson().removeElement(wdContext.nodePerson().getElementAt(i));
}//if
}//for
//@@end -
How to find out when data was deleted from table in oracle and Who deleted that
HI Experts,
Help me for below query:
how to find out when data was deleted from table in oracle and Who deleted that ?
I did that to fidn out some data from dba_tab_modifications, but I m not sure that what timestamp shows, wether it shows for update,insert or delete time ?
SQL> select TABLE_OWNER,TABLE_NAME,INSERTS,UPDATES,DELETES,TIMESTAMP,DROP_SEGMENTS,TRUNCATED from dba_tab_modifications where TABLE_NAME='F9001';
TABLE_OWNER TABLE_NAME INSERTS UPDATES DELETES TIMESTAMP DROP_SEGMENTS TRU
PRODCTL F9001 1683 46 2171 11-12-13 18:23:39 0 NO
Audit is enable in my enviroment?
customer is facing the issue and data missing in the table and I told him that yes there is a delete at 11-12-13 18:23:39 in table after seeing the DELETS column and timestamp in dba_tab_modifications, but not sure I am right or not
SQL> show parameter audit
NAME TYPE VALUE
audit_file_dest string /oracle/admin/pbowe/adump
audit_sys_operations boolean TRUE
audit_syslog_level string
audit_trail string DB, EXTENDED
please help
Thanks
SamLOGMiner --> Using LogMiner to Analyze Redo Log Files
AUDIT --> Configuring and Administering Auditing -
Hello, everyone.
I am having issues with running a DELETE statement on an Oracle 10g database.
DELETE
FROM tableA
WHERE ID in (1,2,3)
If there is only one ID for the IN clause, it works. But if more than one ID is supplied, I get an "SQL command not properly ended" error message. Here is the query as CF:
DELETE
FROM TRAINING
WHERE userID = <cfqueryparam cfsqltype="CF_SQL_VARCHAR" value="#trim(form.userID)#">
AND TRAINING_ID in <cfqueryparam value="#form.trainingIDs#" cfsqltype="CF_SQL_INTEGER" list="yes">
Anyone work with Oracle that can help me with this? I'm an experienced MS-SQL developer; Oracle is new to me.
Thanks,
^_^Nevermind.. a co-worker just told me that I still have to use parenthesis around the values for the IN clause.
-
While deleting project from CJ20N entries are not deleted from table PRPS
Hi,
I am deleting project from CJ20N then from PROJ table entries are getting deleted but WBS element entries are not deleted from table PRPS.
Any deletion Flag should also be checked?
Thanks in advance!
Regards,
JyotiHello,
Thanks for reply !
My problem is I am deleting project and WBS Elements from CJ20N but WBS element entries are not deleted from PRPS table.
Why they are appearing in PRPS table and how it can be deleted?
Thanks ! -
Delete From Table on Cancel Button.
Hi,
i am facing funny problem.
i have created form with report page and i have implement send email option on Page so i am attach more document with email.if i attach document then it's going in DUMY_DOC_FILE table .
i have create a process
delete from DUMY_DOC_FILE .
Process Point IS ON Submit -After Conmputation and Validation
On Page No 6.if i press Cancel Button.This button is redirect on page No 4.My Code on Page no 6.
page is redirect to 4 but doc don't delete from DUMY_DOC_FILE Table.
How to delete Doc From Table If I press Cancel Button.
Thanks
Edited by: 805629 on Jan 13, 2011 5:25 AM
Edited by: 805629 on Jan 13, 2011 11:49 PM
Edited by: 805629 on Jan 14, 2011 12:43 AM<li>Change Cancel Button in page 6 so that it submits.
<li>If u have conditions on that delete PLSQL process, make sure that it runs when CANCEL button is pressed also. If it is unconditional, let it be.
<li>Add a branch for the Cancel button which redirect to page 4
So effectivelly instead of *[CANCEL] -> [Redirect to page 4]* , it becomes *[CANCEL] -> [SUBMIT] -> [DELETE PROCESS] -> [Branch: redirect to page 4]* -
Hello
I have a dataset that was created at design time
but - after I run the app, it randomly creates a table based on The Users name
since I do not know the users name before had, the table is not part of my existing dataset
(I actually used an insert into sql nonquery to just make this table a copy of the masterUserTable)
Now - I have a binding navigator on my form, that is originally bound to masterUserTable, but my goal is to make it bound to the users table (let's say GabrielUserTable)
I thought I did so with this code:
'TODO: This line of code loads data into the 'MyLearningDBDataSet.masterUserTable' table. You can move, or remove it, as needed.
Me.MyMainDBTableAdapter.Fill(Me.MyLearningDBDataSet.masterUserTable)
Dim ThisNewVariable As String = MyUserNameIs & "UserTable"
Dim ThisNewTableName As New DataTable
Me.MyLearningDBDataSet.masterUserTable.TableName = ThisNewVariable
Me.MyMainDBTableAdapter.Fill(Me.MyLearningDBDataSet.masterUserTable)
that appeared to do the trick (but if it is incorrect please advice on the proper way to add a table made at runtime to a users existing datset)
Else where in my code I successfully execute the following NonQuery :
SqlString= "DELETE FROM " & MyUserNameIs & "UserTable" & vbCrLf &
"WHERE vState='" & txtStateInfo.Text & "';"
I check in Visual Studio 2013 that the row was deleted from the "GabrielUserTable" (Gabriel is the current value of MyUserNameIs) by using the Server Explorer and right clicking
on the table and choosing show talbe data
But the MyMainDBBindingNavigator is still showing the item I deleted.
So after searching for answers - I created a new button for testing and added the following code to test if it would work
Me.Validate()
Me.MyMainDBBindingSource.EndEdit()
Me.TableAdapterManager.UpdateAll(Me.MyLearningDBDataSet)
but the data is still shwoing after deleting it with my NonQuery
Please Help!Hi genterprise,
>> Now - I have a binding navigator on my form, that is originally bound to masterUserTable, but my goal is to make it bound to the users table (let's say GabrielUserTable)
In my option, if you want to rebind the users table to the navigator, you need to set the BindingNavigator.BindingSource. Based on your description, it seems that you did not reset the datasoure of the MyMainDBBindingNavigator. It was the original datasource
of the masterUserTable. For more details about BindingNavigator.BindingSource Property. You could refer the link below:
# BindingNavigator.BindingSource Property
https://msdn.microsoft.com/en-us/library/system.windows.forms.bindingnavigator.bindingsource%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396
Best Regards,
Edward
We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
Click HERE to participate the survey. -
NullPointerException when deleting from table with no non-primary keys
We have an object mapped to a table in our database.
This table has two fields that together form a composite key. When we attempt to perform a delete from this table using the mapped object we receive the following exception and stack trace:
java.lang.NullPointerException
at oracle.toplink.descriptors.FieldsLockingPolicy.getAllNonPrimaryKeyFields(Unknown Source)
at oracle.toplink.descriptors.AllFieldsLockingPolicy.getFieldsToCompare(Unknown Source)
at oracle.toplink.descriptors.FieldsLockingPolicy.buildExpression(Unknown Source)
at oracle.toplink.descriptors.FieldsLockingPolicy.buildDeleteExpression(Unknown Source)
at oracle.toplink.internal.descriptors.ObjectBuilder.buildDeleteExpression(Unknown Source)
at oracle.toplink.internal.queryframework.ExpressionQueryMechanism.buildDeleteStatement(Unknown Source)
at oracle.toplink.internal.queryframework.ExpressionQueryMechanism.prepareDeleteObject(Unknown Source)
at oracle.toplink.internal.queryframework.StatementQueryMechanism.deleteObject(Unknown Source)
at oracle.toplink.queryframework.DeleteObjectQuery.execute(Unknown Source)
at oracle.toplink.queryframework.DatabaseQuery.execute(Unknown Source)
at oracle.toplink.publicinterface.Session.internalExecuteQuery(Unknown Source)
at oracle.toplink.publicinterface.UnitOfWork.internalExecuteQuery(Unknown Source)
at oracle.toplink.tools.profiler.PerformanceProfiler.profileExecutionOfQuery(Unknown Source)
at oracle.toplink.publicinterface.Session.executeQuery(Unknown Source)
at oracle.toplink.publicinterface.Session.executeQuery(Unknown Source)
at oracle.toplink.internal.sessions.CommitManager.deleteAllObjects(Unknown Source)
at oracle.toplink.publicinterface.UnitOfWork.commitToDatabase(Unknown Source)
at oracle.toplink.publicinterface.UnitOfWork.commitRootUnitOfWork(Unknown Source)
at oracle.toplink.publicinterface.UnitOfWork.commit(Unknown Source)
<snip remainder of stack trace>
The table definition for our table is as follows:
PK,FK TASK_ID NUMBER NOT NULL
PK,FK USER_ID NUMBER NOT NULL
Each field is a foreign key to another table, however this is not a join table for a many to many relationship.
The mapping definition for the mapped object is as follows:
public Descriptor buildProConSubscriptionDescriptor( )
Descriptor descriptor = new Descriptor( );
descriptor.setJavaClass( mil.usmc.mol.procon.domain.ProConSubscription.class );
descriptor.addTableName( "PRO_CON_SUBSCRIPTION" );
descriptor.addPrimaryKeyFieldName( "PRO_CON_SUBSCRIPTION.TASK_ID" );
descriptor.addPrimaryKeyFieldName( "PRO_CON_SUBSCRIPTION.USER_ID" );
// Descriptor properties.
descriptor.useNoIdentityMap( );
descriptor.setIdentityMapSize( 1000 );
descriptor.useRemoteNoIdentityMap( );
descriptor.setRemoteIdentityMapSize( 1000 );
descriptor.setAlias( "ProConSubscription" );
descriptor.useAllFieldsLocking( );
// Query manager.
descriptor.getQueryManager( ).checkDatabaseForDoesExist( );
//Named Queries
// Event manager.
// Mappings.
DirectToFieldMapping taskIdMapping = new DirectToFieldMapping( );
taskIdMapping.setAttributeName( "taskId" );
taskIdMapping.setGetMethodName( "getTaskId" );
taskIdMapping.setSetMethodName( "setTaskId" );
taskIdMapping.setFieldName( "PRO_CON_SUBSCRIPTION.TASK_ID" );
descriptor.addMapping( taskIdMapping );
DirectToFieldMapping userIdMapping = new DirectToFieldMapping( );
userIdMapping.setAttributeName( "userId" );
userIdMapping.setGetMethodName( "getUserId" );
userIdMapping.setSetMethodName( "setUserId" );
userIdMapping.setFieldName( "PRO_CON_SUBSCRIPTION.USER_ID" );
descriptor.addMapping( userIdMapping );
return descriptor;
Any thoughts as to why this is happening?
Thanks,
Andrew LeeHi Andrew,
AllFieldsLocking isn't designed for this since you have an object that's composed entirely of primary data. You should make use of any other of TopLink's locking policies to make this work. For instance, try useChangedFieldsLocking(), pessimistic or any of the optimistic locking strategies available from within TopLink for this to work based on the design you have outlined.
Darren -
Hello,
I set the retention period to 7 days (1 week)
I also set the default ARCHIVE and DELETE jobs and ALL are working fine.
However, messages with OLD dates are NOT deleted from the tables XI_AF_MSG and XI_AF_MSG_AUDIT.
These tables 32GB in the DBD table space.
I tried to use the URL:
http://<host>:<port>/MessagingSystem/archiving/reorgdb.jsp
BUT to NO avail.
How do I DELETE or ARCHIVE these messages ?
============================================
Here are some more details on the content of the tables (I took into account 1 MONTH retention):
db2 "select count(*) from sapxi3db.XI_AF_MSG_AUDIT where STATUS='SUCC' and TIME_STAMP < '2007-09-10 00:00:00'"
28947
1 record(s) selected.
db2 "select count(*) from sapxi3db.XI_AF_MSG_AUDIT where STATUS='ERR' and TIME_STAMP < '2007-09-10 00:00:00'"
13243
1 record(s) selected.
db2 "select count(*) from sapxipdb.XI_AF_MSG where PERSIST_UNTIL < '2007-09-10 00:00:00' and STATUS='NDLV'"
1048
1 record(s) selected.
db2 "select count(*) from sapxipdb.XI_AF_MSG where PERSIST_UNTIL < '2007-09-10 00:00:00' and STATUS='DLVD'"
0
1 record(s) selected.Hi,
First, thank you VERY much for answering.
Now to your questions:
1. When using the URL:
http://<host>:<port>/MessagingSystem/archiving/reorgdb.jsp
I did NOT get any ERROR messages.
Thousands of messages where DELETED successfully.
However, the number of rows in XI_AF_MSG_AUDIT did NOT reduce.
2. I used the default archiving and deletion customizations and jobs.
However, I ran them manually a few times a day with NO change in the
number of rows in XI_AF_MSG_AUDIT
What do you mean by "customized any Archiving for adapter Engine" ?
. In RWB, I do see the default job is running
Have you customized any Archiving for adapter Engine or You are using default arciving which runs every 24 hrs.
3. I did ser the retention period for the adapter engine messages in visual admin in seconds...
Please, advise further.
Kind regards,
Gil -
Problem deleting from table with xmltype column
Hi,
Using a standard, simple screen (generated from JHeadstart), I don't seem to be able to delete from a table including an xmltype column. I have tried it even with a very simple mock table with only one column, an xmltype column, and every time I check the "delete" box and click "save", I get the following error:
oracle.jbo.RowInconsistentException: JBO-25014: Another user has changed the row with primary key oracle.jbo.Key[33 ].
I have tried this in the JDeveloper application module tester too and the result is the same.
Is it possible to delete a row from a table with an xmltype column? Am I doing something wrong? Is there something special needs done?
As I say, I did this with a one-xmltype-column table using the "Business Components from Tables" wizard, accepting all the defaults.
Thanks,
DarrenIn short you want
SELECT extractvalue(myxml, '/PurchaseOrder/Reference')
FROM dab_test;This difference is that for dab_xml, there are no columns defined for the table, therefore you are [OBJECT_VALUE|http://download.oracle.com/docs/cd/B28359_01/server.111/b28286/pseudocolumns006.htm#sthref830] as an alias for a non existent column.
With dab_test, you have a column that contains the XML so you need to use that column name instead of OBJECT_VALUE. -
DataGrid not reflecting changes after INSERT into Table. Delete from Table does.
Wow, it's been a while.
Hope you guys can help.
This is my DataGrid:
<DataGrid DataContext="{StaticResource TableAssetsViewSource}" ItemsSource="{Binding}" x:Name="TableAssetsDataGrid" AutoGenerateColumns="False" EnableRowVirtualization="True" Margin="15,10,10,10" RowDetailsVisibilityMode="VisibleWhenSelected" Grid.Column="1" HeadersVisibility="Column" CanUserResizeRows="False" IsReadOnly="True">
<DataGrid.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="BorderThickness" Value="0"/>
</Style>
</DataGrid.CellStyle>
<DataGrid.Columns>
<DataGridTextColumn x:Name="NodeColumn" Binding="{Binding node}" Header="VS Number" Width="*"/>
<DataGridTextColumn x:Name="SerialColumn" Binding="{Binding serial}" Header="Serial Number" Width="*"/>
<DataGridTextColumn x:Name="NameColumn" Binding="{Binding name}" Header="Asset Name" Width="*"/>
<DataGridTextColumn x:Name="TypeColumn" Binding="{Binding type}" Header="Asset Type" Width="*"/>
<DataGridTextColumn x:Name="_dateColumn" Binding="{Binding date}" Header="Date Allocated" Width="*"/>
<DataGridTextColumn x:Name="PoColumn" Binding="{Binding po}" Header="Purchase Order" Width="*"/>
</DataGrid.Columns>
</DataGrid>
This is where I add a new Row to the Table:
Private Sub Button_Click_1(sender As Object, e As RoutedEventArgs)
Dim cbblocation As ComboBox = Me.FindName("LocationComboBox")
Dim row As DataRowView = DirectCast(cbblocation.SelectedItem, DataRowView)
Dim cbbtext As String = row.Item("node")
Dim cbbtype As ComboBox = Me.FindName("comboBoxType")
Dim cbbtext2 As String = cbbtype.Text
Dim RETAILISOAMDDataSet As Retail_ISO_AMD.RETAILISOAMDDataSet = CType(Me.FindResource("RETAILISOAMDDataSet"), Retail_ISO_AMD.RETAILISOAMDDataSet)
Dim RETAILISOAMDDataSetTableAssetsTableAdapter As Retail_ISO_AMD.RETAILISOAMDDataSetTableAdapters.tableAssetsTableAdapter = New Retail_ISO_AMD.RETAILISOAMDDataSetTableAdapters.tableAssetsTableAdapter()
RETAILISOAMDDataSetTableAssetsTableAdapter.AddNewAsset(cbbtext, txbSerial.Text, txbName.Text, cbbtext2, Date.Today, txbPO.Text)
node = cbbtext
Dim mp As New MainPage
mp.RefreshGrid(node)
Me.Close()
End Sub
The RefreshGrid method:
Public Sub RefreshGrid(node As String)
Dim RETAILISOAMDDataSet As Retail_ISO_AMD.RETAILISOAMDDataSet = CType(Me.FindResource("RETAILISOAMDDataSet"), Retail_ISO_AMD.RETAILISOAMDDataSet)
Dim RETAILISOAMDDataSetTableAssetsTableAdapter As Retail_ISO_AMD.RETAILISOAMDDataSetTableAdapters.tableAssetsTableAdapter = New Retail_ISO_AMD.RETAILISOAMDDataSetTableAdapters.tableAssetsTableAdapter()
RETAILISOAMDDataSetTableAssetsTableAdapter.FillByNode(RETAILISOAMDDataSet.tableAssets, node)
Dim TableAssetsViewSource As System.Windows.Data.CollectionViewSource = CType(Me.FindResource("TableAssetsViewSource"), System.Windows.Data.CollectionViewSource)
Dim be As BindingExpression = BindingOperations.GetBindingExpression(TableAssetsViewSource, CollectionViewSource.SourceProperty)
be.UpdateTarget()
End Sub
And this is what I use to delete a row from the table (and without doing anything special, the DataGrid auto-updates with the changes):
Private Sub Button_Click_4(sender As Object, e As RoutedEventArgs)
If TableAssetsDataGrid.SelectedIndex = -1 Then
MsgBox("You have selected nothing to Delete!", MsgBoxStyle.OkOnly, "Nothing Selected")
Else
Dim dgv As DataGridTextColumn = Me.FindName("NodeColumn")
Dim row As DataRowView = DirectCast(Me.TableAssetsDataGrid.SelectedItem, DataRowView)
Dim dgvText As String = row.Item("node")
Dim dgv2 As DataGridTextColumn = Me.FindName("SerialColumn")
Dim row2 As DataRowView = DirectCast(Me.TableAssetsDataGrid.SelectedItem, DataRowView)
Dim dgvText2 As String = row.Item("serial")
Dim dgv3 As DataGridTextColumn = Me.FindName("NameColumn")
Dim row3 As DataRowView = DirectCast(Me.TableAssetsDataGrid.SelectedItem, DataRowView)
Dim dgvText3 As String = row.Item("name")
Dim dgv4 As DataGridTextColumn = Me.FindName("TypeColumn")
Dim row4 As DataRowView = DirectCast(Me.TableAssetsDataGrid.SelectedItem, DataRowView)
Dim dgvText4 As String = row.Item("type")
Dim dgv5 As DataGridTextColumn = Me.FindName("_dateColumn")
Dim row5 As DataRowView = DirectCast(Me.TableAssetsDataGrid.SelectedItem, DataRowView)
Dim dgvText5 As String = row.Item("date")
Dim dgv6 As DataGridTextColumn = Me.FindName("POColumn")
Dim row6 As DataRowView = DirectCast(Me.TableAssetsDataGrid.SelectedItem, DataRowView)
Dim dgvText6 As String = row.Item("po")
Dim RETAILISOAMDDataSet As Retail_ISO_AMD.RETAILISOAMDDataSet = CType(Me.FindResource("RETAILISOAMDDataSet"), Retail_ISO_AMD.RETAILISOAMDDataSet)
Dim RETAILISOAMDDataSetTableAssetsTableAdapter As Retail_ISO_AMD.RETAILISOAMDDataSetTableAdapters.tableAssetsTableAdapter = New Retail_ISO_AMD.RETAILISOAMDDataSetTableAdapters.tableAssetsTableAdapter()
RETAILISOAMDDataSetTableAssetsTableAdapter.RemoveAsset(dgvText, dgvText2, dgvText3, dgvText4, dgvText5, dgvText6)
Dim cbb As ComboBox = Me.FindName("cbbLocation")
Dim row7 As DataRowView = DirectCast(cbb.SelectedItem, DataRowView)
Dim cbbtext As String = row.Item("node")
RefreshGrid(cbbtext)
End If
End Sub
--------- End of Edit
It is bound to a Dataset which gets it's data from a SQL Database.
Loading the Data and Filtering the data based on certain conditions work 100%. The problem I am having is as follows:
I have a form on the Page that takes input and inserts a row into the Database. When this happens, the DataGrid won't automatically reflect the changes (even if I recall the Fill Method of the Dataset). No matter what I do, I have to refresh the entire page
and THEN Fill the Dataset to see any changes.
This is what strikes me as odd...
When I do a delete row operation on the Database (Custom Method on the Dataset with conditions), and just Fill the Dataset again (without doing anything special), the row deletes and the changes is reflected IMMEDIATELY.
What am I doing wrong here? Why would Delete Row reflect the changes on the DataGrid but no Insert Row?
Thanks in Advance.
(P.S. I am very rusty with my developing skills, I haven't done this in YEARS)>>And what about the the most important question, how exactly is TableAssetsViewSource defined in the XAML markup and what is
its Source property set or bound to? And what about the reproducable sample...?
Here is the Markup of the TableAssetsViewSource:
<Page.Resources>
<local:RETAILISOAMDDataSet x:Key="RETAILISOAMDDataSet"/>
<CollectionViewSource x:Key="TableRegionsViewSource" Source="{Binding tableRegions, Source={StaticResource RETAILISOAMDDataSet}}"/>
<CollectionViewSource x:Key="TableLocationsViewSource" Source="{Binding tableLocations, Source={StaticResource RETAILISOAMDDataSet}}"/>
<CollectionViewSource x:Key="TableAssetsViewSource" Source="{Binding tableAssets, Source={StaticResource RETAILISOAMDDataSet}}"/>
</Page.Resources>
The ItemsSource of the DataGrid is bound to the TableAssetsViewSource:
<DataGrid DataContext="{StaticResource TableAssetsViewSource}" ItemsSource="{Binding}" x:Name="TableAssetsDataGrid" AutoGenerateColumns="False" EnableRowVirtualization="True" Margin="15,10,10,10" RowDetailsVisibilityMode="VisibleWhenSelected" Grid.Column="1" HeadersVisibility="Column" CanUserResizeRows="False" IsReadOnly="True">
Just remember, this code was auto-generated with the drag & drop onto the Page, so I did little in terms of setting the actual bindings.
All in all, what I have done so far works as intended, except that when I want to add a row to the table it does not reflect, and that it only shows after refreshing/restarting the application.
I will try and put together a reproducable sample. -
Delete records from tableA which are not in tableB
Table A contains milions of records which is the best way to delete records from tableA which are not in tableB
delete from tableA where empno not in (select empno from tableb)
or
delete from tableA where empno not exists (select empno from tableb
where b.empno=a.empno)
any helpHi
If you can do this, do with this:
create table tableC
as select a.*
from tableA a,
(select empno from tableA
minus
select empno from tableB) b
where a.empno = b.empno;
drop table tableA;
rename table tableC to tableA;
Ott Karesz
http://www.trendo-kft.hu -
Merge update source table and delete from target table problem
Hello Friends,
I am a newbie in SQL Server world and I am in a situation where I need to delete the bunch of records from the TARGET table using the values from the SOURCE table.
The TARGET table has close to 400 Million records, so I need to delete the records in small batches of about ~10,000 rows.
I figured out a way to delete in batches by refering the following 2 posts
http://sqlperformance.com/2013/03/io-subsystem/chunk-deletes
http://dba.stackexchange.com/questions/1750/methods-of-speeding-up-a-huge-delete-from-table-with-no-clauses
I think my best option to delete and update in 1 pass would be through using Merge statement, so for that I constructed following SQL.
MERGE dbo.table1 AS TARGET
USING
SELECT File_name FROM dbo.table2
WHERE FILE_DESC = 'EDI'
AND [Processed_date] < DATEADD (WEEK, -10, Getdate ()) AS SOURCE
ON (TARGET.File_name = SOURCE.File_name)
WHEN MATCHED THEN DELETE (FROM THE TARGET)
WHEN MATCHED
THEN UPDATE SET SOURCE.PROCESS_delete_date = GETDATE()
But, when executed, it throws following error and I am struggling to figure out what is wrong with the above syntax.
Msg 156, Level 15, State 1, Line 3
Incorrect syntax near the keyword 'SELECT'.
Msg 156, Level 15, State 1, Line 5
Incorrect syntax near the keyword 'AS'.
Can any expert please help a newbie as I learn the new way.
Thanks a lot.Visakh, we can have more than 1 matched clause in merge as per the Microsoft sql statement, but we need to add a condition along with the match. thanks for your prompt response on this query. your query is logically fine but when executed, it throws
following error. Msg 156, Level 15, State 1, Line 2 Incorrect syntax near the keyword 'DELETE'. Msg 102, Level 15, State 1, Line 8 Incorrect syntax near ')'. remember, my server machine is 2005 version & my work machine is 2012. dont know why your query
is not working.
MERGE is available only from 2008 onwards
Yes you're correct but again not more than two MATCHED clauses even if you specify condition
see MSDN documentation below
WHEN MATCHED THEN <merge_matched>
Specifies that all rows of target_table that match the rows returned by <table_source> ON <merge_search_condition>, and satisfy any additional search condition, are either updated or deleted according to the <merge_matched> clause.
The MERGE statement can have at most two WHEN MATCHED clauses. If two clauses are specified, then the first clause must be accompanied by an AND <search_condition> clause
from
http://msdn.microsoft.com/en-us/library/bb510625.aspx
Also I guess Composable DML which used is also not present in 2005
So in your case you can try this instead
DECLARE @DELETED_FILES table
File_Name varchar(100)
DELETE t
OUTPUT DELETED.File_Name INTO @DELETED_FILES
FROM dbo.table1 t
INNER JOIN dbo.table2 s
ON t.File_name = s.File_name
WHERE s.FILE_DESC = 'EDI'
AND s.[Processed_date] < DATEADD (WEEK, -10, Getdate ())
UPDATE r
SET r.Process_Delete_Date = GETDATE()
FROM dbo.table2 r
INNER JOIN @DELETED_FILES AS p
ON p.File_Name = r.File_Name
Please Mark This As Answer if it solved your issue
Please Mark This As Helpful if it helps to solve your issue
Visakh
My MSDN Page
My Personal Blog
My Facebook Page -
Deleting rows from table based on value from other table
Hello Members,
I am struck to solve the issue said below using query. Would appreciate any suggestions...
I have two tables having same structures. I want to delete the rows from TableA ( master table ) with the values from TableB ( subset of TableA). The idea is to remove the duplicate values from tableA. The data to be removed are present in TableB. Catch here is TableB holds one row less than TableA, for example
Table A
Name Value
Test 1
Test 1
Test 1
Hello 2
Good 3
TableB
Name Value
Test 1
Test 1
The goal here is to remove the two entries from TableB ('Test') from TableA, finally leaving TableA as
Table A
Name Value
Test 1
Hello 2
Good 3
I tried below queries
1. delete from TestA a where rowid = any (select rowid from TESTA b where b.Name = a.Name and a.Name in ( select Name from TestB ));
Any suggestions..
We need TableB. The problem I mentioned above is part of process. TableB contains the duplicate values which should be deleted from TableA. So that we know what all values we have deleted from TableA. On deleted TableA if I later insert the value from TableB I should be getting the original TableA...
Thanks in advancedrop table table_a;
drop table table_b;
create table table_b as
select 'Test' name, 1 value from dual union all
select 'Test' ,1 from dual;
create table table_a as
select 'Test' name, 1 value from dual union all
select 'Test' ,1 from dual union all
select 'Test' ,1 from dual union all
select 'Hello' ,2 from dual union all
select 'Good', 3 from dual;
/* Formatted on 11/23/2011 1:53:12 PM (QP5 v5.149.1003.31008) */
DELETE FROM table_a
WHERE ROWID IN (SELECT rid
FROM (SELECT ROWID rid,
ROW_NUMBER ()
OVER (PARTITION BY name, VALUE
ORDER BY NULL)
rn
FROM table_a a
WHERE EXISTS
(SELECT 1
FROM table_b b
WHERE a.name = b.name
AND a.VALUE = b.VALUE))
WHERE rn > 1);
select * from table_a
NAME VALUE
Test 1
Hello 2
Good 3Edited by: pollywog on Nov 23, 2011 1:55 PM -
hi gurus,
i am new to abap.
i am create a report using
select-options: apoid,
material,
location to.
parameters: days .
user want to delete entries from the DB table
from system date to behind 5 days left entries
for ex. as today is 25.06.2008 he wants data in DB table
of only 20.06.2008 to 25.06.2008
if other data from left these dates are deleted.
and also in output shows the
2. Report output should contain :
a) Number of entries selected for deleting from table
b) Number of entries deleted from the table table
c) Number of entries remaining in the table table
i am do some coding
plz help me in this case
TABLES: zapolp22.
INTERNAL TABLE *
TYPES: BEGIN OF it_output,
ordid TYPE ZAPOLP22-ordid, "APO order id
schedid TYPE zapolp22-schedid, "APO schedule line id
matnr TYPE zapolp22-matnr, "Material Number
locto TYPE zapolp22-locto, "APO Destination location
lfmng TYPE zapolp22-lfmng, "Delivery quantity
lfdat TYPE zapolp22-lfdat, "Shipping date
locfr TYPE zapolp22-locfr, "APO Supplying location
rqmng TYPE zapolp22-rqmng, "Required quantity
rqdat TYPE zapolp22-rqdat, "Delivery date
prckz TYPE zapolp22-prckz, "Data element processing
blkstk TYPE zapolp22-blkstk, "Blocked Quantity
oppdelqty TYPE zapolp22-oppdelqty, "Cumulative order qty
zzapologmod TYPE zapolp22-zzapologmod, "Logistic Model
zzflagurgent TYPE zapolp22-zzflagurgent, "APO Urgency Flag
zzapottype TYPE zapolp22-zzapottype, "APO Transport Means
zzndays_l_time TYPE zapolp22-zzndays_l_time,"Lead Time Transport
END OF it_output.
DATA : itab1 TYPE STANDARD TABLE OF it_output." WITH HEADER LINE.
DATA : itab LIKE LINE OF itab1.
SELECTION SCREEN / PARAMETERS *
SELECTION-SCREEN BEGIN OF BLOCK a1 WITH FRAME.
SELECT-OPTIONS: s_ordid FOR zapolp22-ordid,
s_matnr FOR zapolp22-matnr,
s_locto FOR zapolp22-locto.
SELECTION-SCREEN END OF BLOCK a1.
PARAMETERS: p_days LIKE sy-datum.
DATA
DATA: days TYPE i.
START OF SELECTION *
SELECT mandt
ordid
schedid
matnr
locto
lfmng
lfdat
locfr
rqmng
rqdat
prckz
blkstk
oppdelqty
zzapologmod
zzflagurgent
zzapottype
zzndays_l_time
FROM zapolp22 INTO itab
WHERE ordid IN s_ordid AND
matnr IN s_matnr AND
locto IN s_locto.
ENDSELECT.
p_days = sy-datum - days.
DELETE zapolp22 FROM itab.
IF sy-subrc = 0.
WRITE:/ 'DEleted'.
ENDIF.
gururs plz help me its urgent.
thanks
jayantHis employer may be aware he's a newbie. He should of course be looking to his colleagues to help. But at least he's made an attempt. Martin is right though - this isn't a problem that requires a guru - it's a beginner task.
For starters try FROM zapolp22 INTO TABLE itab and remove the ENDSELECT.
Then LOOP AT itab...ENDLOOP.
READ the ABAP help for any keywords you don't understand. And DON'T use itab as a name for your internal table. Use a MEANINGFUL name. like t_apo_data.
matt -
How do you delete records from table with data in a select option
how do you delete records from table with relevant to data in a select option..how to write coding
Hi,
Try
if not s_select_option [ ] is initial.
delete * from table
where field in s_select_option.
endif.
commit work.
Be careful though. If select option is emty, you will delete the entire table.
Regards,
Arek
Maybe you are looking for
-
Is it possible to upgrade the grapic card from ATI 4670 to ATI 4850
Hello, i bought a 27inch iMac with an ATI Radeon 4670 grapic chip. At the moment the peformance in Games is enough for me. But for the upcoming PC-Games like Diablo 3 or Starcraft 2, i need a better grapic chip. So is it possible afterwards to upgrad
-
How do i set up duplex printing in windows 8
HP Deskjet 6980 Win 8 pro 64bit how do i gwt support for duplex printing as the basic driver installed does not support it ?
-
URL i used to access the desktop is: http:x.x.x.x:80/portal/dt?provider=MyContainer The problem is that the portal expects 'amconsole' to be up and running without timeout. As suggested in the forum I tried using: http:x.x.x.x:80/portal/dt which disp
-
Can not Update camera raw 7.1 to 8.1
Updating camera raw 8.1
-
Hi all, I am working on the OWSM part and I am trying to configure the ESB webservice to the OWSM (ccore). While doing so I have deleted the gateway in the EM console which is necessary for the OWSM. Because of this we can't proceed further and we wa