Hi

I have below code which updates table tblClients and handles concurrency
violation if needed. Is there a way to make the code generic so for example
another table's name can be passed to the SUB?

Thanks

Regards


Private Sub UpdateDatabase()

Try
Me.tblClientsTableAdapter.Update(Me.ContactsDataSet.tblClients)

Catch dbcx As Data.DBConcurrencyException
HanldeConcurrency(dbcx.Row, ContactsDataSet.tblClientsRow)

End Try

End Sub

Re: Can this be made generic? by Bill

Bill
Fri Apr 25 22:34:00 CDT 2008

Hi John,

Probably not, at least not without significant changes. The problem you have
is knowing the tblClients and tblClientsRow parts. You could use strings
there, such as theDataset.Tables("tblClientsRow"), or alternatively you
could use an interface but that would probably be just shifting the code
writing around, not reducing or re-using that much .




"John" <info@nospam.infovis.co.uk> wrote in message
news:%23G1%238F0pIHA.2636@TK2MSFTNGP04.phx.gbl...
> Hi
>
> I have below code which updates table tblClients and handles concurrency
> violation if needed. Is there a way to make the code generic so for
> example another table's name can be passed to the SUB?
>
> Thanks
>
> Regards
>
>
> Private Sub UpdateDatabase()
>
> Try
> Me.tblClientsTableAdapter.Update(Me.ContactsDataSet.tblClients)
>
> Catch dbcx As Data.DBConcurrencyException
> HanldeConcurrency(dbcx.Row, ContactsDataSet.tblClientsRow)
>
> End Try
>
> End Sub
>


Re: Can this be made generic? by Mike

Mike
Sat Apr 26 03:38:31 CDT 2008

"John" <info@nospam.infovis.co.uk> wrote in message
news:%23G1%238F0pIHA.2636@TK2MSFTNGP04.phx.gbl...


> I have below code which updates table tblClients and handles concurrency
> violation if needed. Is there a way to make the code generic so for
> example another table's name can be passed to the SUB?

I don't know whether anyone from Microsoft regularly reads the Visual Basic
groups but if they do then I am very surprised that they permit one of their
own MVPs to engage in such outrageous long term trolling activities in one
of their own public newsgroups, such as the activity that the person who
purports to be Bill McCarthy has engaged in on the
microsoft.public.vb.general.discussion group for many months. If this man
belongs to you:

https://mvp.support.microsoft.com/profile=B2D0BB02-3E35-4293-B4B9-25680609CCB8

. . . then perhaps you might like to look at his activity in that group.
Here for example is one of his very latest offerings:

"Bill McCarthy" <Bill@N0SPAM.com> wrote in message
news:19A5DEEA-ED6A-4721-9DB9-9F5D8509D825@microsoft.com...

> Yeh, still a way to go. I think given the warm reaction today,
> and given some folks have learning difficulties around here
> (obviously why they are still *stuck* in VB6 *only*), might
> just have to ramp things up a notch or two, and make it more
> toasty :D




Re: Can this be made generic? by John

John
Sat Apr 26 10:10:05 CDT 2008

Hi Bill

Thanks. I'll take what I can get :)

So Dataset.Tables("tblClientsRow") is the equivalent of tblClientsRow, what
is the "string" equivalents of tblClientsTableAdapter and tblClients?

Many thanks again.

Regards

"Bill McCarthy" <Bill@N0SPAM.com> wrote in message
news:F74696A3-7F8F-4B46-B3D8-5505630C5E11@microsoft.com...
> Hi John,
>
> Probably not, at least not without significant changes. The problem you
> have is knowing the tblClients and tblClientsRow parts. You could use
> strings there, such as theDataset.Tables("tblClientsRow"), or
> alternatively you could use an interface but that would probably be just
> shifting the code writing around, not reducing or re-using that much .
>
>
>
>
> "John" <info@nospam.infovis.co.uk> wrote in message
> news:%23G1%238F0pIHA.2636@TK2MSFTNGP04.phx.gbl...
>> Hi
>>
>> I have below code which updates table tblClients and handles concurrency
>> violation if needed. Is there a way to make the code generic so for
>> example another table's name can be passed to the SUB?
>>
>> Thanks
>>
>> Regards
>>
>>
>> Private Sub UpdateDatabase()
>>
>> Try
>> Me.tblClientsTableAdapter.Update(Me.ContactsDataSet.tblClients)
>>
>> Catch dbcx As Data.DBConcurrencyException
>> HanldeConcurrency(dbcx.Row, ContactsDataSet.tblClientsRow)
>>
>> End Try
>>
>> End Sub
>>
>



Re: Can this be made generic? by Bill

Bill
Sat Apr 26 10:41:20 CDT 2008


Hmm... I don't know of any way to get the tableadapter, nor to generalize
it. You could add a partial class for each table adapter and an interface,
and use that interface.



Private Sub UpdateDatabase(adapter As DataAdapter)
>>>
>>> Try
>>> Me.tblClientsTableAdapter.Update(Me.ContactsDataSet.tblClients)
>>>
>>> Catch dbcx As Data.DBConcurrencyException
>>> HanldeConcurrency(dbcx.Row, ContactsDataSet.tblClientsRow)
>>>
>>> End Try
>>>
>>> End Sub




"John" <info@nospam.infovis.co.uk> wrote in message
news:eyNPZ%236pIHA.5096@TK2MSFTNGP02.phx.gbl...
> Hi Bill
>
> Thanks. I'll take what I can get :)
>
> So Dataset.Tables("tblClientsRow") is the equivalent of tblClientsRow,
> what is the "string" equivalents of tblClientsTableAdapter and tblClients?
>
> Many thanks again.
>
> Regards
>
> "Bill McCarthy" <Bill@N0SPAM.com> wrote in message
> news:F74696A3-7F8F-4B46-B3D8-5505630C5E11@microsoft.com...
>> Hi John,
>>
>> Probably not, at least not without significant changes. The problem you
>> have is knowing the tblClients and tblClientsRow parts. You could use
>> strings there, such as theDataset.Tables("tblClientsRow"), or
>> alternatively you could use an interface but that would probably be just
>> shifting the code writing around, not reducing or re-using that much .
>>
>>
>>
>>
>> "John" <info@nospam.infovis.co.uk> wrote in message
>> news:%23G1%238F0pIHA.2636@TK2MSFTNGP04.phx.gbl...
>>> Hi
>>>
>>> I have below code which updates table tblClients and handles concurrency
>>> violation if needed. Is there a way to make the code generic so for
>>> example another table's name can be passed to the SUB?
>>>
>>> Thanks
>>>
>>> Regards
>>>
>>>
>>> Private Sub UpdateDatabase()
>>>
>>> Try
>>> Me.tblClientsTableAdapter.Update(Me.ContactsDataSet.tblClients)
>>>
>>> Catch dbcx As Data.DBConcurrencyException
>>> HanldeConcurrency(dbcx.Row, ContactsDataSet.tblClientsRow)
>>>
>>> End Try
>>>
>>> End Sub
>>>
>>
>
>


Re: Can this be made generic? by Steve

Steve
Sat Apr 26 11:24:29 CDT 2008

I'm not sure where the "tblClientsRow" came from, but theDataset.Tables is a
collection of data tables. They are identified by the name used when they were
added to the dataset, usually based on the source of the data, or a name
assigned explicitly when the table was added.

If you have a string table name, you can get at any table using
theDataset.Tables("theTableName").


John wrote:
> Hi Bill
>
> Thanks. I'll take what I can get :)
>
> So Dataset.Tables("tblClientsRow") is the equivalent of tblClientsRow, what is
> the "string" equivalents of
> tblClientsTableAdapter and tblClients?
> Many thanks again.
>
> Regards
>
> "Bill McCarthy" <Bill@N0SPAM.com> wrote in message
> news:F74696A3-7F8F-4B46-B3D8-5505630C5E11@microsoft.com...
>> Hi John,
>>
>> Probably not, at least not without significant changes. The problem
>> you have is knowing the tblClients and tblClientsRow parts. You
>> could use strings there, such as theDataset.Tables("tblClientsRow"),
>> or alternatively you could use an interface but that would probably
>> be just shifting the code writing around, not reducing or re-using
>> that much . "John" <info@nospam.infovis.co.uk> wrote in message
>> news:%23G1%238F0pIHA.2636@TK2MSFTNGP04.phx.gbl...
>>> Hi
>>>
>>> I have below code which updates table tblClients and handles
>>> concurrency violation if needed. Is there a way to make the code
>>> generic so for example another table's name can be passed to the
>>> SUB? Thanks
>>>
>>> Regards
>>>
>>>
>>> Private Sub UpdateDatabase()
>>>
>>> Try
>>> Me.tblClientsTableAdapter.Update(Me.ContactsDataSet.tblClients)
>>>
>>> Catch dbcx As Data.DBConcurrencyException
>>> HanldeConcurrency(dbcx.Row, ContactsDataSet.tblClientsRow)
>>>
>>> End Try
>>>
>>> End Sub



Re: Can this be made generic? by Bill

Bill
Sat Apr 26 11:35:29 CDT 2008

Yeh, the difficulty though is with the TableAdapter. You'd could resort to
a late bound call (or reflection), otherwise the only thing I can think of
is partial classes for each adapter, adding an Interface that has Update
etc.


"Steve Gerrard" <mynamehere@comcast.net> wrote in message
news:_bydnWD6YNWjyo7VnZ2dnUVZ_tqtnZ2d@comcast.com...
> I'm not sure where the "tblClientsRow" came from, but theDataset.Tables is
> a collection of data tables. They are identified by the name used when
> they were added to the dataset, usually based on the source of the data,
> or a name assigned explicitly when the table was added.
>
> If you have a string table name, you can get at any table using
> theDataset.Tables("theTableName").
>
>
> John wrote:
>> Hi Bill
>>
>> Thanks. I'll take what I can get :)
>>
>> So Dataset.Tables("tblClientsRow") is the equivalent of tblClientsRow,
>> what is the "string" equivalents of
>> tblClientsTableAdapter and tblClients?
>> Many thanks again.
>>
>> Regards
>>
>> "Bill McCarthy" <Bill@N0SPAM.com> wrote in message
>> news:F74696A3-7F8F-4B46-B3D8-5505630C5E11@microsoft.com...
>>> Hi John,
>>>
>>> Probably not, at least not without significant changes. The problem
>>> you have is knowing the tblClients and tblClientsRow parts. You
>>> could use strings there, such as theDataset.Tables("tblClientsRow"),
>>> or alternatively you could use an interface but that would probably
>>> be just shifting the code writing around, not reducing or re-using
>>> that much . "John" <info@nospam.infovis.co.uk> wrote in message
>>> news:%23G1%238F0pIHA.2636@TK2MSFTNGP04.phx.gbl...
>>>> Hi
>>>>
>>>> I have below code which updates table tblClients and handles
>>>> concurrency violation if needed. Is there a way to make the code
>>>> generic so for example another table's name can be passed to the
>>>> SUB? Thanks
>>>>
>>>> Regards
>>>>
>>>>
>>>> Private Sub UpdateDatabase()
>>>>
>>>> Try
>>>> Me.tblClientsTableAdapter.Update(Me.ContactsDataSet.tblClients)
>>>>
>>>> Catch dbcx As Data.DBConcurrencyException
>>>> HanldeConcurrency(dbcx.Row, ContactsDataSet.tblClientsRow)
>>>>
>>>> End Try
>>>>
>>>> End Sub
>
>


Re: Can this be made generic? by Cor

Cor
Sat Apr 26 23:56:01 CDT 2008

John,

The Row that creates an error is marked in its rowerror property, this is a
string which describes the error.

It is should for anybody be easy to find that row and take the actions on
that.

http://msdn2.microsoft.com/en-us/library/system.data.datarow.rowerror(VS.71).aspx

Cor


"John" <info@nospam.infovis.co.uk> schreef in bericht
news:%23G1%238F0pIHA.2636@TK2MSFTNGP04.phx.gbl...
> Hi
>
> I have below code which updates table tblClients and handles concurrency
> violation if needed. Is there a way to make the code generic so for
> example another table's name can be passed to the SUB?
>
> Thanks
>
> Regards
>
>
> Private Sub UpdateDatabase()
>
> Try
> Me.tblClientsTableAdapter.Update(Me.ContactsDataSet.tblClients)
>
> Catch dbcx As Data.DBConcurrencyException
> HanldeConcurrency(dbcx.Row, ContactsDataSet.tblClientsRow)
>
> End Try
>
> End Sub
>