Connect to a MSSQL database

I'm a novis in database connections.

My problem is that I have a MSSql (Microsoft SQL) database I need connection to. How too get connected too the database that is on a server.
Is it ADO that is best suited for the task or is it somthing else? And it is an other database with the same name on the server witch is accessed with ODBC so I have too be certen it is not that one I get connetcted on.

And i'm not using .net.

I'm using Borland Developer Studio 2006 by the way.

liljen_80Asked:
Who is Participating?
 
ziolkoConnect With a Mentor Commented:
drop down TADOConnection set connection string to your server and then:
 ADOConnection1.Open('your user name', 'your pass')
 ADOConnection1.GetTableNames();

here's little example:

object Form1: TForm1
  Left = 326
  Top = 88
  Caption = 'Form1'
  ClientHeight = 606
  ClientWidth = 862
  Color = clBtnFace
  Font.Charset = DEFAULT_CHARSET
  Font.Color = clWindowText
  Font.Height = -11
  Font.Name = 'Tahoma'
  Font.Style = []
  OldCreateOrder = False
  PixelsPerInch = 96
  TextHeight = 13
  object Button1: TButton
    Left = 76
    Top = 436
    Width = 75
    Height = 25
    Caption = 'Button1'
    TabOrder = 0
    OnClick = Button1Click
  end
  object DBGrid1: TDBGrid
    Left = 248
    Top = 212
    Width = 489
    Height = 301
    DataSource = DataSource1
    TabOrder = 1
    TitleFont.Charset = DEFAULT_CHARSET
    TitleFont.Color = clWindowText
    TitleFont.Height = -11
    TitleFont.Name = 'Tahoma'
    TitleFont.Style = []
  end
  object ADOConnection1: TADOConnection
    Connected = True
    ConnectionString =
      'Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initi' +
      'al Catalog=sdb;Data Source=LUKASZZ\SQL2K'
    Provider = 'SQLOLEDB.1'
    Left = 84
    Top = 196
  end
  object ADOTable1: TADOTable
    Active = True
    Connection = ADOConnection1
    CursorType = ctStatic
    TableName = 'dat0001'
    Left = 84
    Top = 236
  end
  object DataSource1: TDataSource
    DataSet = ADOTable1
    Left = 172
    Top = 240
  end
end

ziolko.
0
 
ziolkoCommented:
yup, ADO is the fastest way, moreover both ADO and MSSQL are Microsoft's technologies so they wor very nice together:)

ziolko.
0
 
liljen_80Author Commented:
Oki, that was what I tought. But I dont get in anny conflicts with the other database witch my be accessed by ODBC?
I have been locking for a site on the internet with some explenation on how too use ADO but I cant find anny good one, someone knows anny site?
0
Cloud Class® Course: CompTIA Cloud+

The CompTIA Cloud+ Basic training course will teach you about cloud concepts and models, data storage, networking, and network infrastructure.

 
ziolkoCommented:
nope there shouldn't be any conflicts with ODBC
for samples of ADO go to: \Program Files\Borland\BDS\4.0\Demos\DelphiWin32\VCLWin32\ADO

ziolko.
0
 
liljen_80Author Commented:
Yea it was an example there, but it was very complex.
Does sombody have a simple solution on how and get a list of the tabels and how too conect a ADOTable to a database.

0
 
ziolkoCommented:
You have to modify ConnectionString and TableName to your values

ziolko.
0
 
liljen_80Author Commented:
But how is it possible too make a list of the TableNames where the user my pick witch Table too show?
0
 
ziolkoCommented:
use ADOCOnnection.GetTableNames() display result for user when user selects table asign it's name to ADOTable.TableName and then set ADOTable.Active := True

ziolko.
0
 
liljen_80Author Commented:
I solved the last problem my self.

But I got a problem when I'm going into the database fore the first time. I get up that I have too write in the password and username. But it does not mather what i write, I get into the database no mater what I write.

This is the ConnectionString: Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=HET;Data Source=OLE\BERE
0
 
ziolkoCommented:
thats because You selected "Use Windows NT Integrated Security"  and therfore in connection to DB security context of logged on user (logged on to computer) is used instead of login/password You specify.

You can either set ADOCOnnection.LoginPrompt := False to use logged on user or remove >>Integrated Security=SSPI;<< from Your connection string (same as uncheck "Use Windows NT Integrated Security")

ziolko.
0
 
liljen_80Author Commented:
It worked with ADOCOnnection.LoginPrompt := False, thanks.

This is how I alter a table:
if ADOTable1.Locate('ID',45,[loCaseInsensitive]) then
begin
  ADOTable1.Edit;
  ADOTable1.FieldByName('ID').AsInteger := 65;
  ADOTable1.Refresh;
end;

But how too do this so that nobody other get access to alter this while I'm doing the change. Besause if it is done the way my code is it is generated an error, but I need it so that the last one dont get too do the altering and just continues.
0
 
liljen_80Author Commented:
The error message is:
Row can not bi located for updating. Some values may been changed since it was last read.
0
 
ziolkoCommented:
try ADOTable1.Post instead ADOTable1.Refresh;

ziolko.
0
 
liljen_80Author Commented:
I have some more problems with ADO database connection, I would appreciate if you would take a look at this problem
http://www.experts-exchange.com/Programming/Programming_Languages/Delphi/Q_22054714.html

Regards
Jan
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.