dbTalk Databases Forums  

can't do that request

comp.databases.ms-sqlserver comp.databases.ms-sqlserver


Discuss can't do that request in the comp.databases.ms-sqlserver forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Sam
 
Posts: n/a

Default can't do that request - 04-05-2005 , 01:37 PM






Hi,
I'm going to explain as clearly as possible:

I have two tables:

Relationships(relation_id, table1, table2)
Relationfields(relation_id, field1, field2)

In Relationships, relation_id is the primary key
In Relationfields, relation_id is the foreign key

I have a front-end interface that allows the user to add records to
Relationships and Relationfields as followed:

The user selects a table1 and table2 values from listboxes. These are
real table names from sys.objects, so then the user can select fields
of these tables on which he wants to create a JOIN.
Anyway, I can easily insert the table1 and table2 into Relationships
(relation_id is an auto-increment). Then I need to get the relation_id
of this new Relationship (easy since I know which values I've inserted
and table1-table2 associations are unique.

Now the PROBLEM :
I need to insert into Relationfields all the fields selectioned by the
user for each of the two tables . But the user might have selected
several fields from table1 and table2, so I need to pass A LIST
PARAMETER to my Stored Procedure as I don't know how many values of
field1 and field2 there is going to be.

I hope this is clear enough. Is it possible to achieve what I want ?
Should I pass an entire concatenated string with values separated by
comma or whatever and then decrypt it in the stored procedure ?

Thx


Reply With Quote
  #2  
Old   
Sam
 
Posts: n/a

Default Re: can't do that request - 04-06-2005 , 03:15 AM






Could anyone help please ?


Reply With Quote
  #3  
Old   
Simon Hayes
 
Posts: n/a

Default Re: can't do that request - 04-06-2005 , 03:23 AM



If you're asking how to pass a list into a procedure as a parameter,
then see here:

http://www.sommarskog.se/arrays-in-sql.html

If that doesn't help, I suggest you post CREATE TABLE and INSERT
statements to clarify exactly what you need:

http://www.aspfaq.com/etiquette.asp?id=5006

Simon


Reply With Quote
  #4  
Old   
Sam
 
Posts: n/a

Default Re: can't do that request - 04-06-2005 , 04:03 AM



thanks. I think the first link should help me doing what I want.
Regards


Reply With Quote
  #5  
Old   
--CELKO--
 
Posts: n/a

Default Re: can't do that request - 04-06-2005 , 11:37 AM



Why are you putting metadata in your schema, in total violation of the
basic principles of a relational database? Why don't you know the
differences between rows and records, fields and columns, data and
metadata?

You can kludge this with a lot of dynamic SQL that will run like cold
glue, have no data integrity and be unmaintainable. Someone will
probably help you do this. Please read a few books before you destroy
your employers data.


Reply With Quote
  #6  
Old   
Ellen K
 
Posts: n/a

Default Re: can't do that request - 04-06-2005 , 07:51 PM



The best way to pass multiple-row data into a stored procedure is using
OPENXML, any other method is a kludge.


Reply With Quote
  #7  
Old   
Sam
 
Posts: n/a

Default Re: can't do that request - 04-07-2005 , 02:52 AM



I put meta data in my shema because my employer pays me to do so... I'm
developping an administration tool for maintaining dynamic metadata of
a website.
Now I'm not sure in what way your comment is of any use to me...


Reply With Quote
  #8  
Old   
Sam
 
Posts: n/a

Default Re: can't do that request - 04-07-2005 , 02:53 AM



Ellen K > Thanks I'll look at this in the future. But I've found a
better way this time to avoid passing multiple-row data to my stored
procedure
Thx!


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.