|
dilkonika wrote: On your opinion , is better to use Transact-SQL or SMO ? I tend to prefer scripts; easy to test and update.
SMO would also require a specific version for each version of SQL Server that you want to support. Still, SMO makes it easy to manipulate SQL Server from C#.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Thank you !
I have another question.When I use SMO , I should add to reference some files :
Microsoft.SqlServer.ConnectionInfo.dll
Microsoft.SqlServer.Smo.dll
Microsoft.SqlServer.Management.Sdk.Sfc.dll
Microsoft.SqlServer.SqlEnum.dll
But these files are in folder : C:\Program Files\Microsoft SQL Server\110\SDK\Assemblies\
when I install my application to other computers , can I put these files on application folder or they should be on this folder on destination computer ? But, if I have this application on a client computer that not have sql server installed?
And my last question (Sorry !)
I want to use SMO just for Backup restore operations.I think these are very basic operations.Do you think that one version of SMO (that reference on my application) can support only for these operations even different versions of SQL server (older or newer ?)
Thank you !
|
|
|
|
|
dilkonika wrote: can I put these files on application folder Yes
dilkonika wrote: But, if I have this application on a client computer that not have sql server installed? The SMO-assemblies need to be present, but you don't need Sql Server.
dilkonika wrote: I think these are very basic operations.Do you think that one version of SMO (that reference on my application) can support only for these operations even different versions of SQL server (older or newer ?) You can't use SMO for 2008 on a 2005-server, but the other way around "might" work.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Thank you !
But if I put these files on my application folder , I should change the reference on my application to this directory ?
And if I can do this , let suppose that I run this application on a pc with different version of sql server , is possible only to change these files on my application folder with corresponding files from that version , and may work or I'm wrong ?
|
|
|
|
|
dilkonika wrote: But if I put these files on my application folder , I should change the
reference on my application to this directory ?
No, the reference is not specific to a directory; .NET will look in various locations for an assembly, including your executables working-folder.
dilkonika wrote: let suppose that I run this application on a pc with different version of sql
server , is possible only to change these files on my application folder with
corresponding files from that version , and may work No, that won't work; you write code/compile against the files you referenced. Replace those files and your app stops working.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Ok , but if I use SQL scripts for backup and restore , they are identical on each version of sql server ? So a script that created for sql server 2008R2 , will work on sql server 2005 and sql server 2012 ?
Thank you !
|
|
|
|
|
dilkonika wrote: but if I use SQL scripts for backup and restore , they are identical on each version of sql server ? That's not guaranteed.
Even though the commands will not differ, Microsoft keeps extending it. So, if you take care not to use any switches that are specific to a version, it should work on all machines.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Sorry !
Maybe it's a stupid question , but anyway.
These are the files needed by smo :
Microsoft.SqlServer.ConnectionInfo.dll
Microsoft.SqlServer.Smo.dll
Microsoft.SqlServer.Management.Sdk.Sfc.dll
Microsoft.SqlServer.SqlEnum.dll
and on different folders of my program I have versions of these file from different sql server versions.
and I reference all these file to my program , and on runtime check which version of sql server is installed ??!!
Can I go to a solution with this way ?
Thank you !
|
|
|
|
|
Hello !
I'm working with VB.net 2013 entity framework 6 and sql server 2008r2 ( installed on local machine).
I'm facing a strange situation :
The first query that is executed on my application , run very slow ( For example query=(from t in context.DB1 select t).tolist)For the second time , even if I execute a different query (query2=(From t in context.DB2 select t).tolist ) , this run almost instantly.
Why !
What can I do ?
Thank you !
|
|
|
|
|
Try running a query without EF, to determine whether it's an EF startup problem or a database startup problem.
If it's the database, the most likely cause would be having auto-close enabled[^] on the database.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Autoclose is false to my database
|
|
|
|
|
One thing I would ask is there a difference in size between the 2 tables?
As the tolist forces the query to be executed against the database.
Every day, thousands of innocent plants are killed by vegetarians.
Help end the violence EAT BACON
|
|
|
|
|
I have make this test :
First query to a small table - long delay
Second query to a bigger table - very fast
Third query to the first small table - very fast
|
|
|
|
|
if you are able show the code that you are using
Every day, thousands of innocent plants are killed by vegetarians.
Help end the violence EAT BACON
|
|
|
|
|
I'm using Entity , and the code is :
Dim context as new MyEntities
Query=(From t in context.DB1 select t).Tolist
Query2=(From t in context.DB2 select t).tolist
|
|
|
|
|
dilkonika wrote: What can I do Write a console app, and select where 1=1 from your database. Put that console-app in the startup-folder.
It may have multiple reasons; a database-server that isn't active yet, a database that's not yet loaded, the cache being empty, the enumerator waiting until it's enumerated..
I assume you're timing the query from a profiler?
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Sorry !
But Select from which table , because I get error with just "Select where 1=1"
|
|
|
|
|
Uhhhh... you don't know much of anything about SQL servers, do you?
I suggest you learn before trying to write an application that uses one.
To answer answer your question, ANY TABLE IN YOUR DATABASE! Use you brain man!
|
|
|
|
|
I never used any command like that. ( Why do I need to select from any table ???!!!! )
for the things that I need on my application I have writed all the sql commands.
For this thing that I doesn't know I thought to ask in this forum.
If you want to help people, is better to give the answer than to insult them.
"Select where 1=1" give errors to me.
Thank you !
|
|
|
|
|
You've never run a command like this against a database?:
SELECT IDfieldName FROM someTable WHERE someCondition
You've never written an application that has used a database before, have you? That's the most ubiquitous query, used by every single application ever written that hits a database engine.
Hey, you wanted to find out if your database was up and running, right?? Possibly get the client "warmed up" so subsequent queries execute faster, right?? What better way than to run a small SELECT against it?
But, hey, after 35+ years of writing code, what do I know...
|
|
|
|
|
I was talking about the command "Select Where 1=1"
In this command "IDfieldname" and "someTable" are missing
Congratulations for your 35+ years of writing code , but I think is better to share with us some of your information without angry.
It's not shame to make even stupid questions.
Anyway , thank you !
|
|
|
|
|
You get an error on that SELECT WHERE 1=1 because it's not a valid query.
That's why I said put a table name in there. Im pretty sure MySQL has a master table or something similarly named.
|
|
|
|
|
dilkonika wrote: Sorry ! Don't be; my bad. The syntax is invalid, because I assumed you alread used such a query. It's a "SELECT * FROM WhateverTable WHERE 1=1 (or 1=0 to get no results); the idea is to send a bogus query whose result does not matter - it's not the result of the query that's interesting.
Performaning the "first" query when the computer starts is a way of cheating. The first query (the bogus one in this case) would still be slow. It would (should) force the db-server to wake up and load all that's required to handle a query.
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|
|
Hello,
I am new to ASP.Net so forgive me if what i am asking is too basic.
I need to be able to update some particular cells of a DataGridView control.
The GridView has 5 columns but i want to update only two of the columns when a user clicks the "Edit" link.
My problem is:
1. How do i limit the cells to be updated to those two cells?
2. How do i update those cells by specifying an update query?
|
|
|
|
|
Felix Fosu wrote: I am new to ASP.Net You might want to consider the ASP.NET forum. You might also want to specify whether you mean the default DataGrid[^], or really a DataGridView[^].
Bastard Programmer from Hell
If you can't read my code, try converting it here[^]
|
|
|
|