[VB6/SQL] Primary index wil niet tijdens CommandText

Pagina: 1
Acties:

  • shades
  • Registratie: September 2001
  • Laatst online: 10-08 15:01
Via een ADODB.Command voeg ik een tabel toe aan een bestaande database, dit werkt alleen wordt er geen primary key gezet op de colom die ik aanmaak terwijl dat wel aangeef. De colom blijft ook NULL accepteren en ook dat wordt niet aangegeven.

Hier de code, in vb6 en er wordt naar sql2000 geconnect:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
    Dim strConnect As String

    strConnect = _
        "Provider=SQLOLEDB.1;" & _
        "Persist Security Info=False;" & _
        "User ID=userid;" & _
        "Password=password" & _
        "Initial Catalog=catalognaam;" & _
        "Data Source=SQLDOOS01"
    
    On Error GoTo ErrorHandler
    
    Dim oSQL As New ADODB.Command
    Set oSQL = New ADODB.Command
    
    Debug.Print "Activating connection.."
    oSQL.ActiveConnection = strConnect
    
    Debug.Print "Dropping table.."
    oSQL.CommandText = "DROP TABLE tbl_AccountInformatie"
    oSQL.Execute
    
    Debug.Print "Creating table.."
    oSQL.CommandText = "CREATE TABLE [dbo].[tbl_AccountInformatie] ([AccountID] [int]) ON [PRIMARY]"
    oSQL.Execute
    'oSQL.CommandText = "CREATE INDEX [AccountID] ON [dbo].[tbl_AccountInformatie]([AccountID]) ON [PRIMARY]"
    'oSQL.Execute

    Set oSQL = Nothing
    
    Debug.Print "Done.."
    On Error GoTo 0
    Exit Sub

ErrorHandler:

    Debug.Print Err.Number & ":" & Err.Description
    Resume Next

https://k1600gt.nl


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
um... die twee regels zijn af-ge-rem-ed... of had je dat al gezien? eerste dat me opviel :P

Maarre... probeer eens:
code:
1
2
CREATE TABLE [dbo].[tbl_AccountInformatie] ([AccountID] [int] IDENTITY (1, 1) NOT NULL) ON [PRIMARY]
ALTER TABLE [dbo].[tbl_AccountInformatie] WITH NOCHECK ADD CONSTRAINT [PK_tbl_AccountInformatie] PRIMARY KEY  CLUSTERED ([AccountID])  ON [PRIMARY]


Denk dat je dat bedoelt :*)

[ Voor 73% gewijzigd door RobIII op 24-12-2002 10:31 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • shades
  • Registratie: September 2001
  • Laatst online: 10-08 15:01
RobIII schreef op 24 december 2002 @ 10:25:
um... die twee regels zijn af-ge-rem-ed... of had je dat al gezien? eerste dat me opviel :P
Daar ben ik van op de hoogte..
De ON [PRIMARY] in de eerste CommandText zou ervoor moeten zorgen (denk ik) dat de dat veld een primaire index krijgt. Zo zag het sql script van sql2000 er zelf uit..

De CREATE INDEX heb ik er achter geplakt om te kijken of het zo wel leukte maar dat werkt dus ook niet. Een foutmelding krijg blijft echter uit dus ik zou ook niet weten wat er aa scheelt.. Dat het uitgeremd is klopt dus... (Mijn fout dat ik het niet toegelicht heb)

EDIT:
Je toevoeging maakt heb autonumber. Die moest er inderdaad nog bij en dat werkt. De allows Null is nu ook verdwenen.. Nu nog een pri-key nog.

[ Voor 11% gewijzigd door shades op 24-12-2002 10:38 ]

https://k1600gt.nl


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
En de statements die ik je gaf werken ook niet???

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • shades
  • Registratie: September 2001
  • Laatst online: 10-08 15:01
RobIII schreef op 24 December 2002 @ 10:37:
En de statements die ik je gaf werken ook niet???
Ga ik even proberen.

EDIT:
Toppie, het werkt.
Ik heb nog een keer een "generate sqlscript" gedaan op die tabel en nu krijg ik wel die statements die je opgaf... Ik ben bang dat ik een foutje heb gemaakt tijdens de vorige keer dat ik het sqlscriptje liet genereren |:( Waarschijnlijk moet de tabel eerst opgeslagen zijn voordat het sqlscript die wijzigingen ook daadwerkelijk meeneemt.. Logisch natuurlijk maar niet iets waar je in eerste instantie aan denkt. Thx

[ Voor 57% gewijzigd door shades op 24-12-2002 10:44 ]

https://k1600gt.nl


Verwijderd

[
Daar ben ik van op de hoogte..
De ON [PRIMARY] in de eerste CommandText zou ervoor moeten zorgen (denk ik) dat de dat veld een primaire index krijgt. Zo zag het sql script van sql2000 er zelf uit..
Met ON [PRIMARY] geef je aan dat de tabel in de primary file van de database wordt gecreëerd. Je kan namelijk je db in SQL2000 over meerdere logische files verdelen.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
He-Le-Maal mee eens :P

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • shades
  • Registratie: September 2001
  • Laatst online: 10-08 15:01
Verwijderd schreef op 24 december 2002 @ 11:07:
[...]


Met ON [PRIMARY] geef je aan dat de tabel in de primary file van de database wordt gecreëerd. Je kan namelijk je db in SQL2000 over meerdere logische files verdelen.
Oke..
Weet ik dat ook weer :D

Mag ik jullie nog even lastig vallen met de volgende:

code:
1
ALTER TABLE [dbo].[tbl_AccountInformatie] ADD COLUMN [AccountName] [nvarchar] (50)


Dit geeft : Incorrect syntax near the keyword 'COLUMN'. ?
Ik heb de systax direcht uit een boek gehaald...

Als ik de regel bij de CREATE TABLE stop werkt het wel maar dat wil ik niet...
De code is dan (sql gegenereerd)
code:
1
2
3
4
CREATE TABLE [dbo].[tbl_AccountInformatie] (
    [AccountID] [int] IDENTITY (1, 1) NOT NULL ,
    [AccountName] [nvarchar] (50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL 
) ON [PRIMARY]

https://k1600gt.nl


Verwijderd

Probeer dit eens (zonder COLUMN):

code:
1
ALTER TABLE [dbo].[tbl_AccountInformatie] ADD [AccountName] [nvarchar] (50)

  • shades
  • Registratie: September 2001
  • Laatst online: 10-08 15:01
Verwijderd schreef op 24 december 2002 @ 12:46:
Probeer dit eens (zonder COLUMN):

code:
1
ALTER TABLE [dbo].[tbl_AccountInformatie] ADD [AccountName] [nvarchar] (50)
Verdorie... dat werkt wel..
Waarom staat het in mijn boek dan niet goed ? Laatste druk is nog geen jaar oud..

https://k1600gt.nl

Pagina: 1