|
Put an insert trigger on table_1.
With in the trigger do the insert into table_2 & table_3.
Michael
I firmly believe that any man's finest hour, the greatest fulfillment of all that he holds dear, is that moment when he has worked his heart out in a good cause and lies exhausted on the field of battle - victorious.
Vince Lombardi (1913-1970)
|
|
|
|
|
Thank you for your answer. I will try that...
|
|
|
|
|
Hello, I'm new at this tables. I'm getting into this microsoft sql server enterprise manager, and I have on my database 50 or more tables. looking for a keyboard shortcuts for this tool. anyone knows?
|
|
|
|
|
In Enterprise Manager, go to the help menu. Then see Accessibility for MMC.
HTH,
Thea
|
|
|
|
|
Ok, I have been mapping DataColumns to DataParameters for a while, and getting great results with output Parameters! All of the sudden, it doesn't work anymore!!! WHY!!!???
Can anyone point me into the direction of where to look for troublesome code?
P.S.
No, I cannot supply any code...
|
|
|
|
|
I am using SQL 2K and C#. I want to keep all the database manipulation code at the db itself and so i decided to use Stored Procedures. Now when i tried to use Stored Procs with parameters, i find that i have to supply the datatype as well as the data length when i create the Parameter.
***************************************
SqlParameter parm = new SqlParameter();
parm.ParameterName = "@employeeName";
parm.DbType = DbType.Varchar;
parm.Size = 50;
parm.Direction = ParameterDirection.Input;
cmd.Parameters.Add(parm);
**************************************
Doesn't this DEFEAT the whole purpose(keeping the code independent from database) of using stored procedures This means if i change the size of a parameter in the database, i have to modify my c# code and recompile. Am i missing something or is this the only way to do it?
|
|
|
|
|
There are ways to query the DB to set up the parameters for you unfortunatly, it is much slower.
It is a pain to deal with parameter size changes but, if your DB design is well thought out it becomes a very minor issue over time.
This is really no different than coding your own SQL statements at the client. If you changed a column size and passed in data the exceeds it, SQL will throw an error and you will have to change your client code. Knowing your data size limits at compile time is a good thing.
|
|
|
|
|
I work in VB.NET but I guess, ADO.NET must be same in C#. So, here is how we use DB procedures for data handling.
We have some SQL Helper classes defined parallel to Data.SQLClient methods. These methods will discover the parameters of the procedures at runtime using SQLCommandBuilder.DeriveParameters. This gives us the current parameter information of Procedures we have in DB.Though it is a bit slow, we will have current parameter collection information. If size of a parameter in underlying SP is changed this method will have it too. So, while referencing this method, we dont have to mention datatype or size of parameters.
This works fine without changing the client or recompiling, as long as the singnature of SP is not changed. Else obviously we have to change the code in the client application.
Bhaskara
|
|
|
|
|
Tadaaaaa!
Select Parameter_Name, Parameter_Mode, Data_Type, Character_Maximum_Length, SysTypes.Length
From Information_Schema.Parameters
Inner Join SysTypes ON Information_Schema.Parameters.DATA_TYPE = SysTypes.Name
Where Specific_Name = '[Sotred Proc Name]'
It's fast and efficient...
|
|
|
|
|
There are very few reasons to go with stored procedures at all. The possible valid reasons are:
* better database security
* allows dba to have better control
The invalid reasons are:
* speed (minimal at best, occasionally worse)
* keeping code independent of the database (it does the opposite by locking you into a db vendor)
* strongly typed parameters (you can do this with normal queries)
Good reasons not to do it are:
* hides business logic away
* SQL expertees required to maintain
* difficult to write search queries
* locks you into a specific database vendor
* adds another level of complexity to your app
Actually, for a new application, there is very little need to write any data access code at all. I use Codesmith to generate my data access code just the way I like it.
|
|
|
|
|
For input parameters you don't need to set the length or the type...
SqlCommand cmd = ...;
cmd.Parameters.Add("@ParamName", obj);
Have a look at my latest article about Object Prevalence with Bamboo Prevalence.
|
|
|
|
|
i don't know if this is the right place to post this, but is database related so i hope someone can help me ...
!!! all this is done in vc++ 6.0 using MFC/DAO !!!
i have a database with a table that has one numeric field called ID...
in my program, i assign a string to every value of this field...
so if the table has the following data
1
3
2
1
2
then my data will be in the following form
cow
chicken
wolf
cow
wolf
that is, every number has an assigned string.
the problem is that i want to store only the numeric field in the table and do all the processing in the program
so how can i have a recordset that contains the strings and to be able to sort it ?
another example :
i have a table that contains two fields : DATE and TEXT
but i want to have in my program three fields : DATE, TIME, and TEXT, where DATE and TIME is extracted from the DATE field in the database.
also i want to be able to sort by DATE or TIME in my program, so a database with folowing data
DATE TEXT
---------------- -----------
15/02/2001 12:28 Chris
19/02/2002 15:42 George
25/07/2003 09:48 John
will show up like this in my program
DATE TIME TEXT
---------- ----- -----------
15/02/2001 12:28 Chris
19/02/2002 15:42 George
25/07/2003 09:48 John
and i should be able to sort by DATE, or TIME, or TEXT
i'm showing data using a CListCtrl (not virtual)
please can somebody help me up with this ?
thanks ! (at least for reading this)
|
|
|
|
|
i've tried to do build a table and then deleting it when the database is closed but that is how far i am...
i'm not too good at SQL and i don't know if i can do this in MFC/DAO
so please......
|
|
|
|
|
The database load command has two functions:
1) It will be used to populate database tables from CSV files
2) It will be used to update database tables from CSV files
The command might be run in Sun Solaris (sparc) or in Windows 2000
machine. We are assuming that will not get local access to their database
server, the access is probably happen over JDBC or/and ODBC.
Database will be Microsoft SQL Server 2000 SP3.
Please note that a updated CSV file will be loaded to the database
once a month (the function 2) above). The load command should
not duplicate existing rows in tables, and it should not cause
production downtime, i.e. it must not just delete all existing rows
(or drop existing table) and create all rows from scratch as
that kind of update would cause production downtime.
I have included few lines from beginning of two of the CSV files.
As you can see, the first line in CSV file lists the column names.
The corresponding database tables will have same column names to
make things easier. All columns won’t be VARCHARs, some
of them will be floating point numbers (longitude and latitude must
be floating point numbers in the tables).
--- postalcode.csv ---
"POSTAL_CODE","CITY","PROVINCE","PROVINCE_ABBR","AREA_CODE","CITY_FLAG","TIME_ZONE","DAY_LIGHT_SAVING","LATITUDE","LONGITUDE"
"A0A 1A0","AQUAFORTE","NEWFOUNDLAND","NF","709","N","3.5","Y","47.007050","-52.95195"
"A0A 1B0","AVONDALE","NEWFOUNDLAND","NF","709","N","3.5","Y","47.416880","-53.19755"
"A0A 1C0","BAY BULLS","NEWFOUNDLAND","NF","709","N","3.5","Y","47.321210","-52.81743"
"A0A 1E0","BAY DE VERDE","NEWFOUNDLAND","NF","709","N","3.5","Y","48.086930","-52.89581"
--- postalcode.csv ---
--- zipcode.csv ---
"ZIP_CODE","CITY","STATE","AREA_CODE","CITY_ALIAS_NAME","CITY_ALIAS_ABBR","CITY_TYPE","COUNTY_NAME","COUNTY_FIPS","TIME_ZONE","DAY_LIGHT_SAVING","LATITUDE","LONGITUDE","ELEVATION"
"00501","HOLTSVILLE","NY","516","I R S SERVICE CENTER","","N","SUFFOLK","103","5","Y","40.81518","-73.0455","25"
"00501","HOLTSVILLE","NY","516","HOLTSVILLE","","P","SUFFOLK","103","5","Y","40.81518","-73.0455","25"
--- zipcode.csv ---
dadsadasd
|
|
|
|
|
Hate to be blunt, but what's the question you want answered?
Chris Meech
I am Canadian. [heard in a local bar]
I think people should be required to have an operator's permit to use the internet. John Simmons
|
|
|
|
|
Not sure what your question is either
But if you are asking for help creating this loading program, here's an article right here on code project that I found helpful.
http://www.codeproject.com/cs/database/inifileado.asp
|
|
|
|
|
Hi, everybody,
How to get(use sql statement) the name of the default on a column when I use "col_name int not null default 'aa'" create the table in MS SQL Server.
Thanks a lot
Alan
|
|
|
|
|
Hello all,
I have a set of legacy applications that use dbaseIII+, containing English, as well as data in ISCII format. These have to be transferred to SQL Server. I am working on an XP with SQL Server 2000 installed.
In the DTS' Import/Export wizard, after the data source has been selected as 'Dbase III', the file name containing the data, and user name /password are asked.
( Ofcourse, dbaseIII+ in itself does not have any name/password. ) After giving the file name, if the user name and password are not given, the following error message comes up -
"Invalid date setting in the Xbase key of the Windows Registry".
If, along with the filename, the user name / password combination is entered (the one used at the time of logging in), then the following error message is thrown -
"Cannot start your application. The workgroup information file is missing or opened exclusively by another user."
RegEdit on the key -
HKEY_LOCAL_MACHINE\software\microsoft\jet\4.0\engines\Xbase - date
showed the data equal to 'MDY'. I changed this to 'MM/DD/YY'. Still no dice.
This same error of "Invalid date setting ..." appears when i try to do an import on the dbase file in Access 2003. Though, in the Access 2003/Import window, upon specifying the file type as 'dbaseIII', all
the files are listed properly, indicating that the files as such are being recognized correctly by the system.
What could be the reason for this problem, and how does one correct it. I appreciate any pointers that could resolve this problem.
Regards,
Sanjay.
P.S. : The dbf file does not have any dbt/index etc. It also does not have any date field. All fields are character.
|
|
|
|
|
Hi
How can I return the row no. in my query result?
Like the presentation of SQL analyzer in GRID VIEW, please help me…
e.g.
The first column represent the Row No.
---------------------------------------
| | field1 | field2 | field3 | --- this is the field header
---------------------------------------
| 1 | 1 | dsdfsf | sdfsdd | --- Result with 2 rows
---------------------------------------
| 2 | 1233 | asdfsf | wefsdd |
---------------------------------------
If you look at my sample the first column represent the row number.
If my query look like this “Select * From Table”,
How can I return the row number it self with my returning field and row value.
Mark
|
|
|
|
|
you should handle this display issue in your client code..
but if you insist to do this in SQL server .. ok
here is a sample :
set nocount on<br />
create table #tempResult<br />
(MyID int identity,col1 varchar(30),col2 varchar(30))<br />
<br />
<br />
insert into #tempResult (col1,col2) Select lastname , firstname from employees<br />
set nocount off<br />
select * from #tempResult<br />
drop table #tempResult
|
|
|
|
|
I have a program that imports data from an excel spreadsheet into a dataset. I then create a connection to sql server and check to see if a table exist, drop it and recreate it. I cant figure out how to poulate the newly create sql server table with the dataset from excel. any help would be great. Here is the code:
Imports System.Data.OleDb
Public Class Form1
Inherits System.Windows.Forms.Form
#Region " Windows Form Designer generated code "
Public Sub New()
MyBase.New()
'This call is required by the Windows Form Designer.
InitializeComponent()
'Add any initialization after the InitializeComponent() call
End Sub
'Form overrides dispose to clean up the component list.
Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
If disposing Then
If Not (components Is Nothing) Then
components.Dispose()
End If
End If
MyBase.Dispose(disposing)
End Sub
'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
Friend WithEvents TabControl1 As System.Windows.Forms.TabControl
Friend WithEvents ProgressBar1 As System.Windows.Forms.ProgressBar
Friend WithEvents TabPage1 As System.Windows.Forms.TabPage
Friend WithEvents Button1 As System.Windows.Forms.Button
Friend WithEvents TabPage2 As System.Windows.Forms.TabPage
Friend WithEvents Button2 As System.Windows.Forms.Button
Friend WithEvents DataGrid1 As System.Windows.Forms.DataGrid
<system.diagnostics.debuggerstepthrough()> Private Sub InitializeComponent()
Dim resources As System.Resources.ResourceManager = New System.Resources.ResourceManager(GetType(Form1))
Me.TabControl1 = New System.Windows.Forms.TabControl()
Me.TabPage1 = New System.Windows.Forms.TabPage()
Me.Button2 = New System.Windows.Forms.Button()
Me.Button1 = New System.Windows.Forms.Button()
Me.TabPage2 = New System.Windows.Forms.TabPage()
Me.ProgressBar1 = New System.Windows.Forms.ProgressBar()
Me.DataGrid1 = New System.Windows.Forms.DataGrid()
Me.TabControl1.SuspendLayout()
Me.TabPage1.SuspendLayout()
CType(Me.DataGrid1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'TabControl1
'
Me.TabControl1.Controls.AddRange(New System.Windows.Forms.Control() {Me.TabPage1, Me.TabPage2})
Me.TabControl1.Location = New System.Drawing.Point(8, 40)
Me.TabControl1.Name = "TabControl1"
Me.TabControl1.SelectedIndex = 0
Me.TabControl1.Size = New System.Drawing.Size(544, 360)
Me.TabControl1.TabIndex = 3
'
'TabPage1
'
Me.TabPage1.Controls.AddRange(New System.Windows.Forms.Control() {Me.Button2, Me.Button1})
Me.TabPage1.Location = New System.Drawing.Point(4, 22)
Me.TabPage1.Name = "TabPage1"
Me.TabPage1.Size = New System.Drawing.Size(536, 334)
Me.TabPage1.TabIndex = 0
Me.TabPage1.Text = "Step 1 - Import EDI"
'
'Button2
'
Me.Button2.Location = New System.Drawing.Point(8, 40)
Me.Button2.Name = "Button2"
Me.Button2.Size = New System.Drawing.Size(136, 24)
Me.Button2.TabIndex = 6
Me.Button2.Text = "Transfer EDI to Visual"
Me.Button2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
'
'Button1
'
Me.Button1.AccessibleDescription = ""
Me.Button1.Cursor = System.Windows.Forms.Cursors.Hand
Me.Button1.Image = CType(resources.GetObject("Button1.Image"), System.Drawing.Bitmap)
Me.Button1.ImageAlign = System.Drawing.ContentAlignment.MiddleRight
Me.Button1.Location = New System.Drawing.Point(8, 8)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(136, 24)
Me.Button1.TabIndex = 0
Me.Button1.Tag = ""
Me.Button1.Text = "Load EDI from Deere"
Me.Button1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
'
'TabPage2
'
Me.TabPage2.Location = New System.Drawing.Point(4, 22)
Me.TabPage2.Name = "TabPage2"
Me.TabPage2.Size = New System.Drawing.Size(536, 334)
Me.TabPage2.TabIndex = 1
Me.TabPage2.Text = "Step 2 - Compare Data"
'
'ProgressBar1
'
Me.ProgressBar1.Location = New System.Drawing.Point(416, 16)
Me.ProgressBar1.Name = "ProgressBar1"
Me.ProgressBar1.Size = New System.Drawing.Size(136, 13)
Me.ProgressBar1.TabIndex = 4
'
'DataGrid1
'
Me.DataGrid1.CaptionForeColor = System.Drawing.Color.Yellow
Me.DataGrid1.DataMember = ""
Me.DataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText
Me.DataGrid1.Location = New System.Drawing.Point(16, 136)
Me.DataGrid1.Name = "DataGrid1"
Me.DataGrid1.Size = New System.Drawing.Size(528, 256)
Me.DataGrid1.TabIndex = 0
'
'Form1
'
Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
Me.ClientSize = New System.Drawing.Size(560, 405)
Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.DataGrid1, Me.TabControl1, Me.ProgressBar1})
Me.Name = "Form1"
Me.Text = "Form1"
Me.TabControl1.ResumeLayout(False)
Me.TabPage1.ResumeLayout(False)
CType(Me.DataGrid1, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
End Sub
#End Region
Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
' Create connection string variable for excel.
Dim a As String = "Provider=Microsoft.Jet.OLEDB.4.0;" _
& "Data Source=c:\supplier requirements.xls;" _
& "Extended Properties=Excel 8.0;"
' Create the connection object by using the preceding connection string.
Dim objConn As New OleDbConnection(a)
' Open connection with the database.
objConn.Open()
' The code to follow uses a SQL SELECT command to display the data from the worksheet.
' Create new OleDbCommand to return data from worksheet.
Dim objCmdSelect As New OleDbCommand("Select * from [supplier requirements$]", objConn)
' Create new OleDbDataAdapter that is used to build a DataSet
' based on the preceding SQL SELECT statement.
Dim objAdapter As New OleDbDataAdapter()
' Pass the Select command to the adapter.
objAdapter.SelectCommand = objCmdSelect
' Create new DataSet to hold information from the worksheet.
Dim objDataset As New DataSet()
' Fill the DataSet with the information from the worksheet.
objAdapter.AcceptChangesDuringFill = False
objAdapter.Fill(objDataset, "XLData")
' Build a table from the original data.
DataGrid1.DataSource = objDataset.Tables(0).DefaultView
'get row count
Dim rows As DataRow()
Dim numberofrows As Integer
rows = objDataset.Tables(0).Select()
numberofrows = rows.Length
Me.DataGrid1.CaptionText = CStr(numberofrows) + " rows succesfully loaded into dataset."
Dim SQLConnection As New System.Data.SqlClient.SqlConnection()
SQLConnection.ConnectionString = "user id=sa; password=sa; initial catalog=akgpilot; server=akg-chris-l\vsdotnet;"
SQLConnection.Open()
Dim sqlString As String = "If exists (SELECT name FROM sysobjects WHERE name = N'JD_EDI' AND type = 'U') DROP TABLE JD_EDI"
Dim sqlString2 As String = "Create Table JD_EDI (Type varchar)"
Dim sqlStringCommand As System.Data.SqlClient.SqlCommand = New System.Data.SqlClient.SqlCommand(sqlString, SQLConnection)
sqlStringCommand.ExecuteNonQuery()
Dim sqlStringCommand2 As System.Data.SqlClient.SqlCommand = New System.Data.SqlClient.SqlCommand(sqlString2, SQLConnection)
sqlStringCommand2.ExecuteNonQuery()
|
|
|
|
|
Hi,
I would like to find out how to delete, or at least modify a stored procedure. I'm using MS Access DB, and add stored procedure using C#.
Thanks!
|
|
|
|
|
I may be mistaken but: MS Access doesn't have stored procedures.
|
|
|
|
|
MS Access does have a kind of stored procedure. I did a test on it before and it worked.
The stored procedures are basically queries that can receive parameters, so you should find out how to create queries in Access using C#.
I specified SQL statements to create these 'stored-procedures' before and I suppose you can pass statements to create them from C#.
Edbert P.
Sydney, Australia.
|
|
|
|
|
Thank you for your answer. However, I do know how to create stored procedures, I don't know how to delete them or modify them when they are defined already...
Thanks anyway...
|
|
|
|
|