|
Skanless wrote: 1. If you are new to a database, is there a way that you can quickly find out relationships between the tables?
There are diagrams that you can create to see the relationship between the tables.
Skanless wrote: 2. I need to retrieve information on all the tables in a database to find out which tables have a rowcount of more than 50,000 records then delete some record which thus reducing the table to 50,000 rows so as to make space. Is there a way to do that? and if so, what is the syntax to obtain this?
You can use the sysobjects table that can return the tables existing in your database, then query each table to check how many records it has and delete the ones over 50,000. I can't remember the correct syntax, I'm sure a bit of googling will do.
Skanless wrote: 3. How can I cascade constraints when deleting records from a specific table?
You need to specify the necessary constraints to the tables before deleting the record, and it will automatically trigger the deletion of child records.
"A democracy is nothing more than mob rule, where fifty-one percent of the people may take away the rights of the other forty-nine." - Thomas Jefferson
"Democracy is two wolves and a lamb voting on what to have for lunch. Liberty is a well-armed lamb contesting the vote." - Benjamin Franklin
Edbert
Sydney, Australia
|
|
|
|
|
I'm using ADO.NET and I'm attempting to get the column length for VARCHAR columns using the MaxLength property of the DataTable class, but it always returns -1, any secrets to finding this info from a returned MS SQL Server Query ?
|
|
|
|
|
According to the docs
"If the column has no maximum length, the value is –1 (default)."
If you set MaxLength on a column do you still get -1 back?
Mark
|
|
|
|
|
Yes, the length limit can be seen in the "Design Table" dialog of the SQL Server Enterprise Manager for the table in question. Its a VARCHAR(50) column, but after I query this tabkle the DataTable's DataColumn has a MaxLength value of -1
Here is the code i use to Query the Table if that helps...
DataTable DT = new DataTable();
if(m_DB is SqlConnection)
{
m_DA = new SqlDataAdapter(Query,(SqlConnection)m_DB);
m_CB = new SqlCommandBuilder((SqlDataAdapter)m_DA);
((SqlCommandBuilder)m_CB).QuotePrefix="[";
((SqlCommandBuilder)m_CB).QuoteSuffix="]";
((SqlDataAdapter)m_DA).Fill(DT);
}
|
|
|
|
|
Ok, sorry.
I use ODBC to get schema info in my database code, specifically SQLTables() and SQLColumns().
Take a look at GetSchemaTable (in DataReader). I'm pretty sure that retreives the same info
as the ODBC functions.
I think it's tough to use a specific SQL query because the way schema is stored varies by server,
version, etc.
Mark
|
|
|
|
|
hai frndz,
i am using MS office 2003.
In MSAccess Database is there any way to retrive autoincremt value just after insertion to the table like
select @@identity or select Scope_identity in MSSQL 2000.
in select @@identity some times it return 0 value.
help me plzzzzzzz
All I ever wanted is what others have....
CrazySanker
|
|
|
|
|
Well....are you talking about an 'Autonumber' field? If you are, then if your Autonumber field were something like 'ProductID' then you could say something like
SELECT Max(ProductID) FROM Product
|
|
|
|
|
Hi All,
This is my first post in this message board. I am working in ASP.NET 2.0 project using C#.
I am implementing DataAccess mechanism using 3 tier architecture.
UI:In my aspx page, i am using ObjectDataSource, in which the SELECT method is a method from my BLL(Business Logic Layer).
BLL:In this class, it accesses a method from my DAL(Data Access Layer), whose return type is DataTable.
DAL:It uses a User Stored Procedure (USP) to retrieve the DataTable, and it has some OUTPUT variables also.
The whole logic is works fine. The OUTPUT variable's values are captured in BLL class (during run time).
My Problem : I wish to access the OUTPUT variables from the ObjectDataSource's Selected event handler.How to do this?
Previously, i am directly access my DAL from my ObjectDataSource, that time the stmt e.OutputParameters["output_var"] gives me the result.
Thanks.
Regards,
Jay
|
|
|
|
|
The problem is that i didn't passed the arguments in my method in BLL as Reference Variable.
Now i am used the Reference Variable using ref keyword in C#. Now i got the result value in my ObjectDataSource's Selected event handler using e.OutputParameters["output_var"] .
Thanks.
Regards,
Jay
|
|
|
|
|
When trying to get a connection to a SQL server thro ASP.net application, if the SQL server is not running , what error usually it will throw, and how can i trace that error.
thanks,
Harsha
|
|
|
|
|
You will get the error "Sql Server does not exist or access is denied."
Mike Lasseter
|
|
|
|
|
Hi. I've had an issue come up in a program that I am working on with multiple projects in the same solution. The way I handle database connectivity is to encapsulate my database connection and my dataset in two separate class files, clsDatabase and clsQueryResults. clsDatabase evaluates a given connectionString and dataProvider to determine whether the app is using an OLEDB, SQLServer, MySQL, or Oracle database and uses the appropriate connections (i.e. OleDbConnection for Access, SQLConnection for SQLServer)
...Anyway, each of the projects that are being put together into this program were developed discretely, so each of them needed to be able to communicate with the database. Thus, clsDatabase and clsQueryResults are located in each of the programs. This causes a problem in my application because it means that I have to maintain 2 separate instances of clsDatabase (both of which connect to the same db file) which is very undesirable. What I would like to do is pull clsDatabase and clsQueryResults out of the individual project files and place them in their own library. However, for security reasons, the db methods located in clsDatabase have been given access type "internal." I would like to keep this library exposed to my projects while not disclosing it to the UI or Application layer. Does anyone know of any way to accomplish this?
For clarity:
This is how my logic looks:
UI->Application->|Project1->|Project1ClassFile->|clsDatabase->|ADO.NET
|
|Project2->|Project2ClassFile->|clsDatabase->|ADO.NET
This is how I want it to look:
UI->Application->|Project1->|Project1ClassFile->|
| |->clsDatabase->|ADO.NET
|Project2->|Project2ClassFile->|
|
|
|
|
|
Maybe I'm being too simplistic, but if you do not want to build clsDatabase into a shared dll, then can't you just use the same class files in each of the projects? I don't understand why you need to "maintain 2 separate instances of clsDatabase."
Put the shared clsDatabase classes in a separate folder. Add the class files to each project as Linked files. Then, both project1 and project2 will have the same source compiled into the application and you can continue to use the internal modifier.
See: Add Existing Item Dialog Box [^]
Add As Link Adds the existing item as a link from the project to its original location. Linking to files is useful when working in teams on shared resources; many projects can link to a file in one location.
--EricDV Sig---------
Some problems are so complex that you have to be highly intelligent and well informed just to be undecided about them.
- Laurence J. Peters
|
|
|
|
|
Using the class files in each of the projects is how the application is currently managed. The problem is that inside each of the object files inside each of the projects, linkage to the clsDatabase class is maintained inside the context of the project. So Project1.ObjectClassA 's private database connection object is a Project1.clsDatabase. Project2.ObjectClassB 's private database connection object is a Project2.clsDatabase.
My logical design goes like this:
UI->App Layer|->ObjectAList|-> ObjectClassA |->clsDatabase|->ADO.NET|->DB1
|
|->ObjectBList|-> ObjectClassB |->clsDatabase|->ADO.NET|->DB1
I don't want to have to maintain 2 logical channels to my database. I think I can elaborate better through code
At the Application Layer:
I have a "Mediator" class that handles Network connectivity and Business Logic Management. Mediator contains an instance of "Project1List" and "Project2List"
using Project1;
using Project2;
clsProject1List prjList1;
clsProject2List prjList2;
clsProject1.clsDatabase mDatabase1;
clsProject2.clsDatabase mDatabase2;
public clsMediator()
{
string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data
Source=mydatabase.mdb;";
string dataProvider = "OLEDB";
mDatabase1 = new clsDatabase(connectionString, dataProvider);
mDatabase2 = new clsDatabase(connectionString, dataProvider);
}
As you can see, I have to fetch two db connections from the connection pool when I should actually only be using one. Imagine if this were a module that aggregated 20 or 30 different busines modules that all connected to the same corporate database. .......WAY too convoluted.
The logical design I desire is:
UI->App Logic |>ObjectAList|>ObjectA|
| |>clsDatabase->ADO.NET->Database
|>ObjectBList|>ObjectB|
|
|
|
|
|
Why not send the clsProjectList and clsProject objects from the App Logic layer to the clsDatabase class, and let the clsDatabase class keep a generic collection of these objects?
--EricDV Sig---------
Some problems are so complex that you have to be highly intelligent and well informed just to be undecided about them.
- Laurence J. Peters
|
|
|
|
|
Hi Friends,
I am facing a big problem. whenever i create a table in my SQL Server 2000 database, it is created of the type "System". I am not able to delete that table again.
Can anyone tell me the reason for this and how can i get the table type back to "User"
Sushant Duggal.
|
|
|
|
|
Sushant Duggal wrote: whenever i create a table in my SQL Server 2000 database, it is created of the type "System".
I've never seen that happen before. I wonder if "sys" is a reserved prefix for table names. Of course, you might not be naming your table with "sys...". You didn't actually give much information that could be useful. For example: How are you logged in? How did you create the "system" table? What permissions does your logged in user have?
|
|
|
|
|
hi all
i want to bind a radiobutton in the datagrid to a cloumn in the dB of datatype BIT and i want to make it checked if the bit col value is false and vice-versa
thank
abdelhameed81
|
|
|
|
|
I think a check box would be a better option. Radio buttons are generally used when there is more than two options and only one is possible. Where check boxes are used for true/false values.
Mike Lasseter
|
|
|
|
|
Hi,
I am using SQL Server 2005.
I have a script that was generated to create all my tables.
How do I create a script (INSERT) that takes all the data in my current tables, and creates INSERT statement for each. I want to take all my data that I have locally and insert it into the online database.
Regards,
ma se
|
|
|
|
|
I usually write some SQL like this:
SELECT 'INSERT INTO MyTable(Column1, Column2) VALUES ('+Column1+', '+Column2+')'
FROM MyTable
And then I run it (using a text output, rather than the grid) and then I can copy and paste it back into the query window.
|
|
|
|
|
Thanks for this.
Please explain what you mean by +Column1+, is this the coloumn name?? Or a value of a column?
Does this create a whole bunch of Insert statements?oes it work?
You have my MyTable listed twice, is this correct?
|
|
|
|
|
ma se wrote: Please explain what you mean by +Column1+, is this the coloumn name??
Yes - It is the column name. I don't know what your column names are so I had to use something.
ma se wrote: Or a value of a column?
No. It is the name of the column.
ma se wrote: Does this create a whole bunch of Insert statements?
Yes.
ma se wrote: Does it work?
Why would I answer this if I didn't know it would work?
ma se wrote: You have my MyTable listed twice, is this correct?
Yes - As a learning exercise tell me why they are both needed.
The only other comment I have is that the +Colunm1+ may have to be CAST or CONVERT ed to coerce the value of a column into a string, or replace a null column value with a string that says 'null' . Again I don't know your data model to show you how to do that.
|
|
|
|
|
Thanks for the answers, and I want to apologise for "Does it work?" It was supposed to be "How does it work?"
I'll try it soon and get back to you soonest to let you know.
|
|
|
|
|
Hi,
I haven't tried this out yet, going to do so soon, but I was wondering if there wasn't a faster method? What happens if I have like 500 tables (for example)??
The reason why I want to go this way is because I always import/export my data, but then the Identity Specification is set back to No. How can I export my tables and stored procedures to the online database with setting the Identity Specification to No, and keeping it Yes?
Regards
ma se
|
|
|
|