Har i alla år innan kört med Access. Nu tänkte jag pröva sql server 2000 och har installerat den samt skapat en ny databas dit jag importerat tabeller från en befintlig access-databas. Tjena! Prövar jag med "sa" och tillhörande lösen svarar den: Det kan vara så att SQL Servern endast är konfigurerad för Windows Only Security. Kolla SQL Server Properties i Enterprise Manager under fliken Security. Nu gick det... Den var satt till windows only :-) Nej det är inte samma sak: Mot Access kör jag t.ex. denna kod: Okej, så omedebart efter lagringen gjorts behöver man köra en sql-sats till? Efter din insert kan du skriva som sas select @@identity för att fånga vilket id posten fick. Okej, så om man man inte använder en insert-sats (som i exemplet ovan) så blir det att man får köra select @@identity efter att man stängt det första RS, eller? Som en fortsättning på detta med en *.udl fil så kan du göra så här för att inte ha "connection"-strängen hårdkodad i ditt program.Hur får jag igång SQL server?
Hur fixar jag nu en koppling till den? Kan man göra en simpel villkorslös ODBC-koppling även till en sql server-databas om man vill, eller måste man skapa specifika konton?
Jag pysslade lite själv för att bara få simplast möjliga odbc-koppling att överhuvudtaget funka, men får felmeddelande att iusr kontot ej kan logga in.Sv: Hur får jag igång SQL server?
Hur du ansluter till sql beror lite på vilken metod du använder, om du jobbar med ado eller ado.net finns det ett Connection objekt med en ConnectString egenskap som kan se ut så här: "Persist Security Info=False;User ID=sa; Password=abc123;Initial Catalog=Duwamish7vb;Data Source=ZARATHUSTRA" . Kör sedan Open() metoden på ditt Connection objekt och voila du har en anslutning. IUSR kontot har som default inga rättigheter i sqlserver, du kan antingen tilldela dessa rättigheter eller specificera ett konto som ska användas vid anslutningen som exempelvis "sa" vilket redan har rättigheter.
mer info för olika anslutningar finns här: http://www.able-consulting.com/ADO_Conn.htmSv: Hur får jag igång SQL server?
Microsoft OLE DB Provider for ODBC Drivers fel '80040e4d'
[Microsoft][ODBC SQL Server Driver][SQL Server]Login failed for user 'sa'. Reason: Not associated with a trusted SQL Server connection.
Vad gör jag galet?Sv: Hur får jag igång SQL server?
Alternativt kan du ansluta med Integrated Security:
"Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=master;Data Source=ZARATHUSTRA"
Ett sätt för att testa anslutningar är att öppna notepad och spara en tom fil med ändelsen .udl, dubbelklicka sedan på den sparad filen. Här kan du laborerar med olika anslutningar, du kan dessutom öppna udl-filen i notepad för att se din ConnectString.Sv: Hur får jag igång SQL server?
Några andra saker...
- motsvarar bigint det som kallas longint i access?
- typen räknare motsvaras av att välja bigint samt identity (no replication) eller?
- binära bilder, kör man in dem som image eller går binary lika bra?
- bör man välja binary om man även vill lagra andra filtyper (pdf,doc etc)?Sv: Hur får jag igång SQL server?
bigInt = -2^63 (-9223372036854775808) through 2^63-1 (9223372036854775807)
Long Integer = –2,147,483,648 to 2,147,483,647
föreslår att du håller dig till vanlig int i alla fall där det inte är absolut nödvändigt med något annat.
En diskussion om binary vs. image hittar du här:
http://www.winnetmag.com/Article/ArticleID/20460/20460.html Ett SQL server problem?
<code>
Set RS2 = Server.CreateObject("ADODB.Recordset")
SQLstring2 = "select * from tabell where 1=2"
RS2.open SQLstring2, Conn, 1, 2
RS2.addnew
RS2("rubrik")= rubrik
RS2.update
'hämta nyskapat id
newid=RS2("id")
RS2.close</code>
Då fick jag ut id på den nyskapade posten till variabel newid. Nu med sql server förblir variabeln tom. Kan man inte göra samma sak mot sql server? I så fall, hur löser jag det istället?Sv: Ett SQL server problem?
Sv: Ett SQL server problem?
Oftast använder man inte set rst= con.execute(insert....) men om du gör det så kommer alltså dess id tillbaks i ditt recordset för att användas vidare i ditt program.Sv: Ett SQL server problem?
Sv: Hur får jag igång SQL server?
I detta ex så ska udl-filen ha samma namn som applikationens "ProductName" och ligga i samma directory som din exe/dll fil.
OBS Bör kompletteras med felhantering.
<code>
Public Sub MySub()
Dim con As ADODB.Connection
Set con = CreateObject("ADODB.Connection")
con.Open GetConnectionString(App.ProductName)
'Gör något med din connection
End Sub
Public Function GetConnectionString(ByVal strSystemId As String) As String
GetConnectionString = "File Name=" & App.Path & "\" & strSystemId & ".udl"
End Function
</code>
//
Janne