[SQLSrv2K] SQL Server niet gevonden of bestaat niet *

Pagina: 1
Acties:

  • evol
  • Registratie: November 2000
  • Laatst online: 12:38

evol

hello world

Topicstarter
Sinds kort doet dit probleem zich af en toe voor. Ik open m'n applicatie, en vervolgens geeft ie dat de server niet gevonden wordt of niet bestaat. DBNETLIB error...
Stop ik de sql server, en start hem weer en voer dan de applicatie uit dan werkt het wel. Waar gaat het dan mis?
Ik gebruik de SQL OLEDB driver om te connecten. Werkt dus ook, alleen niet na bijv. een reboot van mijn machine en ik de sql server niet gerestart heb. Bekend probleem van iemand hier?
Google levert wel het probleem, maar tot nu niet de oplossing op.

Move along people. Nothing to see here.


  • OZ-Gump
  • Registratie: November 2002
  • Laatst online: 14-05-2024

OZ-Gump

terug van weggeweest

Heb je een operator ingesteld die eventuele warnings van je SQL Server ontvangt? Heb je gekeken naar eventuele meldingen in het log van je SQL server?

Hoe staat het bijvoorbeeld met de afmetingen van je bestanden (data en transaction log)? Ietsje meer info zou wel tof zijn ;)

My personal website


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Zonder informatie uit je Eventlog idd kunnen we hier weinig mee, er zal vast een error instaan. En heb je al eens in de Knowledge Base gekeken?

Professionele website nodig?


  • evol
  • Registratie: November 2000
  • Laatst online: 12:38

evol

hello world

Topicstarter
Net weer gereboot, en nu hoefde ik de sql server niet te stoppen/starten om de applicatie te kunnen draaien.

Dit is eigenlijk het enige wat ik in de eventlog terugzie ervan:

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Type gebeurtenis:   Fout
Bron van gebeurtenis:   Application Hang
Categorie van gebeurtenis:  (101)
Gebeurtenis-ID: 1002
Datum:      8-6-2004
Tijd:       11:17:36
Gebruiker:      n.v.t.
Computer:   PUNDITP4
Beschrijving:
Vastgelopen toepassing: MijnApp.exe, versie: 0.0.0.0, vastgelopen module: hungapp, versie: 0.0.0.0, vastgelopen op: 0x00000000.

Zie Help en ondersteuning op http://go.microsoft.com/fwlink/events.asp voor meer informatie.
Gegevens:
0000: 41 70 70 6c 69 63 61 74   Applicat
0008: 69 6f 6e 20 48 61 6e 67   ion Hang
0010: 20 20 4c 6f 67 69 73 52     MijnAp
0018: 52 2e 65 78 65 20 30 2e   p.exe 0.
0020: 30 2e 30 2e 30 20 69 6e   0.0.0 in
0028: 20 68 75 6e 67 61 70 70    hungapp
0030: 20 30 2e 30 2e 30 2e 30    0.0.0.0
0038: 20 61 74 20 6f 66 66 73    at offs
0040: 65 74 20 30 30 30 30 30   et 00000
0048: 30 30 30                  000


Knowledge base wel bekeken, maar niet op die term. Ik zal nog es kijken.
Database files lijkt me niet het probleem, maar zal ik ook nog eens naar kijken.

T lijkt nu dus random :?

Move along people. Nothing to see here.


  • whoami
  • Registratie: December 2000
  • Laatst online: 11:33
Maar vind je nergens iets in de eventlog entries ivm sql server?

https://fgheysels.github.io/


  • evol
  • Registratie: November 2000
  • Laatst online: 12:38

evol

hello world

Topicstarter
Alleen informatieve meldingen, t zou toch een warning of error moeten zijn lijkt mij?

Move along people. Nothing to see here.


  • evol
  • Registratie: November 2000
  • Laatst online: 12:38

evol

hello world

Topicstarter
Nog even een aanvullende kick:

de applicatie is gebaseerd op ADO. Hij maakt via de SQL OLEDB driver connectie met de database.
In de applicatie heb ik een datamodule die gebruikt wordt voor de connectie. In C++ Builder kan je bij die ADOConnection de connectionstring opgeven. Die staat dan vast? Ik wil die flexibel hebben. Wat ik nu heb is dat ik een bestandje host.txt gebruik met daarin de naam van de sql server. Als de applicatie start leest ie uit de host.txt de naam, vindt ie de server dan start ie door, zo niet dan geeft ie de optie een andere servernaam in te voeren. Is dit idee mogelijk?
Het werkt nu gedeeltelijk. Het lijkt er toch op dat ie de naam die in de ADOConnection zit aanhoudt alszijnde eerste server.

Overall werkt het geheel nog niet echt lekker. SQL server wordt vaak niet gevonden. Waarschijnlijk door die flexibiliteit die ik wil. Vraag is dus: is die flexibiliteit mogelijk?

Move along people. Nothing to see here.


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Ja hoor, flexibele connection string moet geen probleem zijn.

ADO.NET cached connections juist op basis van identieke connection strings, en ik vermoed dat ADO dit ook doet.

Professionele website nodig?


  • whoami
  • Registratie: December 2000
  • Laatst online: 11:33
Als je je connectie-string wilt wijzigen (wat perfect kan), zal je toch wel eerst je connectie moeten sluiten, conn. string wijzigen, en dan de connectie heropenen.
Ik neem aan dat je dat ook doet?

https://fgheysels.github.io/


  • evol
  • Registratie: November 2000
  • Laatst online: 12:38

evol

hello world

Topicstarter
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
  //zet connectiestring
  try
  {
     DWORD dwSize = MAX_COMPUTERNAME_LENGTH + 1;
     char szBuf[MAX_COMPUTERNAME_LENGTH + 1];
     szBuf[0] = '\0';
     String connectie, wks;
     //server = "W2KS";
     TStringList* serverfile=new TStringList();
     serverfile->LoadFromFile("host.txt");
     if( GetComputerName(szBuf, &dwSize) )
       // werkstation naam toekennen
       wks = szBuf;
     connectie = "Provider=SQLOLEDB.1;Integrated Security=SSPI;
Persist Security Info=False;Initial Catalog=DoubleR;Data Source=";
     connectie += serverfile->Strings[0].Trim();
     connectie += ";Use Procedure for Prepare=1;Auto Translate=True;
Packet Size=4096;Workstation ID=";
     connectie += wks;
     connectie += ";Use Encryption for Data=False;
Tag with column collation when possible=False";
     DataModule1->ADOConnection->Close();
     DataModule1->ADOConnection->ConnectionString = connectie;
     DataModule1->ADOConnection->Open();
     serverfile->Free();
  }
  catch(EOleException &e)
  {
      String Message = "Kan de server niet vinden!";
      MessageDlg(Message, mtError, TMsgDlgButtons() << mbOK, 0);
      Application->CreateForm(__classid(TDBConnInfo), &DBConnInfo);
      DBConnInfo->ReadData();
      DBConnInfo->ShowModal();
      delete DBConnInfo;
  }


Dit is wat ik probeer. Enige minpunt wat ik zie is dat ik dit (voorlopig?) in de onformactivate heb staan...lijkt me niet de juiste plek. FormCreate lijkt me logischer maar dan werkt het geheel niet.
Verder zal dit niet de netste code zijn maar t gaat er eerst even om het werkend te krijgen, de applicatie zelf is al niet de netste en mijn programming skills zijn nog in ontwikkeling :)

PS. Bij Persist, Packet en Tag heb ik even harde enters gegeven om de layout hier niet te verstoren.

Move along people. Nothing to see here.


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Probeer eens een compleet nieuwe Connection aan te maken ipv de oude te Closen en her-Openen?

Professionele website nodig?

Pagina: 1