Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2009.11.08;
Скачать: [xml.tar.bz2];

Вниз

Vista + TDBGridEh + MsAccess текстовое поле   Найти похожие ветки 

 
Sergey2   (2009-09-24 10:01) [0]

в приложении вешаю TDBGridEh. база находится в аццессе. делаю селект по полям одно из которых тектовое размерностью 255.
Запускаю приложение на XP работает - все отлично отображается. Запускаю на висте. Всё то текстовое поле в гриде все записи вместо значений пишется [Memo].
Использую TADOConnection. Алиасы создаю в ODBC.
В чем проблема может быть?


 
Медвежонок Пятачок ©   (2009-09-24 10:22) [1]

проблема в разных драйверах акцесса


 
Sergey2   (2009-09-24 10:33) [2]

на XP и Vista офис ставился с одного и того же дистрибутива - 2003 Office


 
Медвежонок Пятачок ©   (2009-09-24 10:36) [3]

и чего?


 
Медвежонок Пятачок ©   (2009-09-24 10:36) [4]

и причем здесь офис?


 
Sergey2   (2009-09-24 10:52) [5]

Ну не знаю причём. логично предположить что "драйвера акцесса" устанавливаются на систему непосредственно при установки оффиса, в котором этот акцесс и живет.
Офис один и тот же. поидее и дрова при установки должны были одни и теже проинсталлироваться.
По крайней мере никаких аццесовских дров я никуда не ставил.
По твоей логике какие то дрова должны уже жить в системе....


 
Медвежонок Пятачок ©   (2009-09-24 10:54) [6]

логично предположить что "драйвера акцесса" устанавливаются на систему непосредственно при установки оффиса

Ну если это логично, то снеси офис и запусти программу на делфи.
И посмотри что будет.
Либо запусти программу на чистой машине до установки офиса.

Поймешь откуда в системе берется драйвер акцесса.


 
Медвежонок Пятачок ©   (2009-09-24 10:56) [7]

Офис один и тот же. поидее и дрова при установки должны были одни и теже проинсталлироваться.

Вовсе не должны и не обязаны. Хотя к проблеме это не имеет отношения.
Проблема в том, что один драйвер акцесса трактует поле как ftString, а второй драйвер как ftMemo


 
Sergey2   (2009-09-24 11:03) [8]

ммм - убедительно. спасибо.
тогда вопрос остаётся в том, что это за драйвера.
Драйвер Microsoft Data Access Components (MDAC) - это они и есть ?


 
sniknik ©   (2009-09-24 11:03) [9]

> что один драйвер акцесса трактует поле как ftString, а второй драйвер как ftMemo
скорее это не сам драйвер, а ODBC-шная надстройка, т.к. если бы было по другому то у меня наверняка уже были бы жалобы на проги в висте, т.к. поля по 255 в них есть. а так как жалоб нет, что чего то не видно, то либо ODBC (т.к. не использую) либо мне очень везет.


 
Медвежонок Пятачок ©   (2009-09-24 11:05) [10]

это они и есть ?

кто же знает, что там у тебя в строке коннекта указано


 
Sergey2   (2009-09-24 11:10) [11]

я знаю, что указано


function CreateODBCDriver(fail_name, driver_name: string): Boolean;
var
 pFn: TSQLConfigDataSource;
 hLib: LongWord;
 strDriver, strAttr: string;
 fResult: BOOL;
 srInfo: TSearchRec;
begin
 Result := True;
 hLib := LoadLibrary("ODBCCP32");
 if (hLib <> NULL) then
 begin
   @pFn := GetProcAddress(hLib, "SQLConfigDataSource");
   if (@pFn <> nil) then
   begin (* force (re-)create DSN *)
     strDriver := "Microsoft Access Driver (*.mdb)";
     strAttr := Format("DSN=" + driver_name + #0 +
       "DBQ=%s" + #0 +
       "Exclusive=0" + #0 +
       "Description=" + driver_name + " DSN" + #0 + #0,
       [fail_name]);
     fResult := pFn(0, ODBC_ADD_SYS_DSN, @strDriver[1], @strAttr[1]);
     if (fResult = false) then
     begin
       ShowMessage("Create DSN (Datasource) failed!");
       Result := False;
       Exit;
     end;
   end;
   FreeLibrary(hLib);
 end
 else
 begin
   ShowMessage("Unable to load ODBCCP32.DLL");
   Result := False;
 end;
 Result := fResult;
end;



 
Sergey2   (2009-09-24 11:14) [12]

ну и сам коннекшн стринг получается вот такой



Provider=MSDASQL.1;Password=***;Persist Security Info=True;Data Source=***;Extended Properties="DSN=***;DBQ=C:\***.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;PWD=***;"



 
Медвежонок Пятачок ©   (2009-09-24 11:17) [13]

я бы не использовал одбс, а использовал jet. это прямее.
второе.
я бы не использовал дсн, так как это вообще странно (как и алиасы бде)

то есть: надо сказать программе где находится файл данных. и вместо того, что бы хранить и читать этот параметр в собственных настройках программы, мы ей зачем-то говорим: сходи в системную конфигурацию, и прочитай настройки соединения там.

ты же например не хранишь свои настройки на сервере пентагона. верно?


 
Anatoly Podgoretsky ©   (2009-09-24 11:47) [14]

Нафига ODBC что бы побольше и подольше помучаться?


 
Sergey2   (2009-09-24 11:52) [15]

о как... сейчас переделаю - потестю. столько лет под одбс проработала...
спасибо


 base := "\\server\***.mdb";
 if not FileExists(base) then
 begin
   Application.MessageBox(PChar("Файл базы данных не найден"),"Ошибка",MB_ICONSTOP);
   Application.Terminate;
 end;

 DM.ADOConnection1.ConnectionString:="Provider=Microsoft.Jet.OLEDB.4.0;"+
   "Data Source=" + base + ";Persist Security Info=False;Jet OLEDB:Database Password=***";
 DM.ADOConnection1.Connected := True;



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2009.11.08;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.006 c
4-1221305909
Aggressor
2008-09-13 15:38
2009.11.08
Start->Run vs Start->cmd


15-1252653672
KSergey
2009-09-11 11:21
2009.11.08
SSI+PHP


2-1253778524
faiwer
2009-09-24 11:48
2009.11.08
Экземпляр класса


15-1252867195
Cerberus
2009-09-13 22:39
2009.11.08
вопрос Linux оедам


2-1253003813
новый
2009-09-15 12:36
2009.11.08
pointer. Не могу разобраться...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский