Страница: 1 | 
		
		 
			   
			 
			 Всем здравствуйте. Подскажите, пожалуйста, кок подключить базу, чтобы она не была жестко привязана к конкретному пути, указанному в Connection String, который формировался при написании проекта, а чтобы можно было базу положить в любое место на диске, например App.Path и при запуске указать её новое положение в ADODC.ConnectionString 
			 
			 public ConnStr as string 'помести строку подключения в модуль и                                       сделай ее общедоступной теперь в строку подключения ты можешь занносить когда угодно и какой угодно  путь к БД. После этого просто указываешь объекту соединение эту строку подключения: cn.ConnectionString=ConnStr   Я так пробовал, но это ничего не даёт. Базу открывает с такой строкой связи, хотя на С: никакой базы нет, база лежит на D: Как с этим явлением бороться??? Где программа запоминает старый путь? Поиском просмотрел исходник, строка ADODC1.ConnectionString только в Sub Main встречается, там, где я её меняю. Заглянул в файл .dsn - там вообще какой-то другой путь указан... Я так пробовал, но это ничего не даёт. Базу открывает с такой строкой связи, хотя на С: никакой базы нет, база лежит на D: Как с этим явлением бороться??? Где программа запоминает старый путь? Поиском просмотрел исходник, строка ADODC1.ConnectionString только в Sub Main встречается, там, где я её меняю. Заглянул в файл .dsn - там вообще какой-то другой путь указан... А попробуй через эту функцию Public Function strConectionString() As String On Error GoTo ErrConnect Dim cn As ADODB.Connection Dim MSDASCObj As MSDASC.DataLinks Dim StrokaConnect As String Set MSDASCObj = New MSDASC.DataLinks Set cn = New ADODB.Connection MSDASCObj.PromptEdit cn 'MSDASCObj.PromptNew cn cn.Open 'MsgBox cn.DefaultDatabase     If cn.DefaultDatabase = "DB_RASKROY" Then ' Если не твоя база то выход              StrokaConnect = cn.ConnectionString         'MsgBox cn.ConnectionString         'MsgBox "Connection opened successfully"     Else         MsgBox "Это БД не подойдет для работы"     End If cn.Close strConectionString = StrokaConnect Exit Function ErrConnect:     MsgBox Err.Description End Function Я через нее работаю тут сразу все провайдеры присутствуют и легко изменять когда сервер БД изменился. Страница: 1 | 
 
			
 
  
		
     
  
    
Вопрос: Connection String
     
    
Добавлено: 29.01.04 07:33
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
    
 cresta
      
       
  
 
    
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 4
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа:
 POMAH
![]()
![]()
ICQ: 223-574-928 
Вопросов: 0
Ответов: 16
      
 Профиль |  | #1
       
Добавлено:  29.01.04 09:10
       
    
       
  
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа:
 cresta
![]()
![]()
Вопросов: 117
Ответов: 1538
      
 Профиль |  | #2
       
Добавлено:  29.01.04 11:55
       
    
       
  
 
    
Sub Main()
'    On Error Resume Next
    If App.PrevInstance Then End
'    ConnStr_1 = "Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="
'    ConnStr_1 = ConnStr_1 & """" & "DBQ=" & App.Path & "\Main.mdb
efaultDir=" & App.Path & "
river={Microsoft Access Driver (*.mdb)}
riverId=281;FIL=MS Access;FILEDSN=" & App.Path & "\1sourse1.dsn;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;"
'    ConnStr_1 = ConnStr_1 & """" & ";Initial Catalog=" & App.Path & "\Main"
    frmMain.Adodc1.ConnectionString = Replace(frmMain.Adodc1.ConnectionString, "D:\CR", App.Path)
    Load frmMain
    frmMain.WindowState = 2
    frmMain.Adodc1.Recordset.MoveFirst
    frmMain.DataGrid1.SelBookmarks.Add frmMain.Adodc1.Recordset.Bookmark
    frmMain.Caption = frmMain.Adodc1.ConnectionString
    Set PRNT = Printer
End Sub
Вот весь код Sub Main
Cтрока связи меняется, НО, как это ни странно, по прежнему обращается к старому месту. В заголовке формы: Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DBQ=C:\Program Files\CR\Main.mdb
efaultDir=C:\Program Files
river={Microsoft Access Driver (*.mdb)}
riverId=281;FIL=MS Access;FILEDSN=C:\Program Files\1sourse1.dsn;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;";Initial Catalog=C:\Program Files\Main
Пробовал как через Replace, так и через глобальную ConnStr_1 (закомментрированный кусок кода).
		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа:
 cresta
![]()
![]()
Вопросов: 117
Ответов: 1538
      
 Профиль |  | #3
       
Добавлено:  29.01.04 11:55
       
    
       
  
 
    
Sub Main()
'    On Error Resume Next
    If App.PrevInstance Then End
'    ConnStr_1 = "Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="
'    ConnStr_1 = ConnStr_1 & """" & "DBQ=" & App.Path & "\Main.mdb
efaultDir=" & App.Path & "
river={Microsoft Access Driver (*.mdb)}
riverId=281;FIL=MS Access;FILEDSN=" & App.Path & "\1sourse1.dsn;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;"
'    ConnStr_1 = ConnStr_1 & """" & ";Initial Catalog=" & App.Path & "\Main"
    frmMain.Adodc1.ConnectionString = Replace(frmMain.Adodc1.ConnectionString, "D:\CR", App.Path)
    Load frmMain
    frmMain.WindowState = 2
    frmMain.Adodc1.Recordset.MoveFirst
    frmMain.DataGrid1.SelBookmarks.Add frmMain.Adodc1.Recordset.Bookmark
    frmMain.Caption = frmMain.Adodc1.ConnectionString
    Set PRNT = Printer
End Sub
Вот весь код Sub Main
Cтрока связи меняется, НО, как это ни странно, по прежнему обращается к старому месту. В заголовке формы: Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DBQ=C:\Program Files\CR\Main.mdb
efaultDir=C:\Program Files
river={Microsoft Access Driver (*.mdb)}
riverId=281;FIL=MS Access;FILEDSN=C:\Program Files\1sourse1.dsn;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;";Initial Catalog=C:\Program Files\Main
Пробовал как через Replace, так и через глобальную ConnStr_1 (закомментрированный кусок кода).
		
	  
			 
	
		 
    
       
    
Номер ответа: 4 
      
Автор ответа:
 Born
![]()
![]()
![]()
![]()
![]()
![]()
ICQ: 178155071 
Вопросов: 21
Ответов: 52
      
 Профиль |  | #4
       
Добавлено:  02.02.04 06:56