Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / FoxPro baza dannih i otcheti v C++ builder 6 / 9 сообщений из 9, страница 1 из 1
03.08.2006, 12:43
    #33896901
dj_raven
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FoxPro baza dannih i otcheti v C++ builder 6
Problemma sledujuschaja. Estj baza dannih, lezhit na servere. Connect iz C++ proishodit zaschet *.dsn fajlov. Iz drajverov stoit "Microsoft OLE DB provider for Visual FoxPro (vfpoledb.exe)" i "Visual FOXPRO ODBC driver (VFPODBC.msi)". soderzhanije "vfp hall.dsn" fajla sledujuscheje:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
[ODBC]
DRIVER=Microsoft Visual FoxPro Driver
UID=
Deleted=Yes
Null=Yes
Collate=Machine
BackgroundFetch=Yes
Exclusive=No
SourceType=DBC
SourceDB=C:\DOCUMENTS AND SETTINGS\PBEZDENEZNIH\MY DOCUMENTS\VISUAL FOXPRO PROJECTS\DLV MAIN DATABASE\DATABASE1\GAMEHALLDLV.DBC

Problemma sluchilasj sledujuschaja, na odnom iz kompjuterov TADOConnection komponent nachal rugatsja na .dsn fajl, soobschenije sledujuscheje: "The file is not a valid compound file". Po mojemu mneniju, sletel drajver na tom kompe. Pereinstaljacija ne pomogla. Mozhno li eto kak-to ispravitj?
...
Рейтинг: 0 / 0
03.08.2006, 16:56
    #33898035
Alexey-M
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FoxPro baza dannih i otcheti v C++ builder 6
Если бы ты показал код, было бы попроще разобраться.
...
Рейтинг: 0 / 0
03.08.2006, 17:27
    #33898137
dj_raven
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FoxPro baza dannih i otcheti v C++ builder 6
Код: plaintext
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.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
   AnsiString inf, curdir;
   TLocateOptions Opts;
   Opts.Clear();
   AnsiString temp;
   Opts << loPartialKey;

   try{
      curdir=ParamStr( 0 );
     curdir.Delete(curdir.LastDelimiter("\\"),curdir.Length()-curdir.LastDelimiter("\\")+ 1 );
      curdir+="\\";
   }
   catch(...){
      Application->MessageBoxA("dir", "err", MB_OK);
   }

   try{
      ADOConnection2->Connected=false;
      temp="FileDSN="+curdir+"vfp settings.dsn";
      TIniFile *FConfig=new TIniFile(curdir+"VFP settings.dsn");
      curdir=curdir.SetLength(curdir.Length()- 1 );
      FConfig->WriteString("ODBC", "SourceDB", curdir);
      FConfig->UpdateFile();
      delete FConfig;
      curdir+="\\";

      ADOConnection2->ConnectionString=temp;
      ADOConnection2->Connected=true;
   }
   catch(...){
      Application->MessageBoxA(strcat("Connection2: ",temp.c_str()), "datmod4", MB_OK);
      if(ADOConnection2->Connected==true)
         Application->MessageBoxA("Connection2: connected", "datmod4", MB_OK);
}

   try{
      Cfg->Active=true;
      Cfg->Locate("Entry_name", "gh_path", Opts);
      inf=CFG_DS->DataSet->FieldValues["Entry_val2"];
      inf=inf.TrimRight();
   }
   catch(...){
      Application->MessageBoxA("Locate", "err", MB_OK);
   }

   try{
      TIniFile *FConfig=new TIniFile(curdir+"VFP hall.dsn");
      FConfig->WriteString("ODBC", "SourceDB", inf);
      FConfig->UpdateFile();
      delete FConfig;
   }
   catch(...){
      Application->MessageBoxA("file", "err", MB_OK);
   }

   try{
      ADOConnection1->Connected=false;
      temp="FILE NAME="+curdir+"VFP hall.dsn";


      ADOConnection1->ConnectionString=temp;
      ADOConnection1->Connected=true;
   }
   catch(...){
      Application->MessageBoxA("Connection1", "err", MB_OK);
   }


Eto vsje ne rabotajet tolko na odnom kompe, na vseh ostalnih bez problem. Porchital tut odnu vozmozhnostj reshitj etu problemmu. Nuzhno .dsn fajli v Unicode chtobi bili. No TIniFile ne rabotajet v Unicode. A standartnimi funkcijami slishkom gemorojno, mozh jestj kakije idei?
P.S. Eta oshibka voznikajet tolko na winXP SP2
...
Рейтинг: 0 / 0
03.08.2006, 19:46
    #33898463
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FoxPro baza dannih i otcheti v C++ builder 6
что мешает создать udl файл и использовать его ?

тоесть создаете файл например cnt.udl
в нем ничего не пишете , сохраняете , два раза по нему кликаем делаем настройки, а в коде уже юзаем


Код: plaintext
1.
2.
  ADOConnection2->Connected=false;
  ADOConnection2->ConnectionString = "FILE NAME=cnt.udl";

что то в таком духе.
...
Рейтинг: 0 / 0
04.08.2006, 11:27
    #33899265
dj_raven
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FoxPro baza dannih i otcheti v C++ builder 6
pri primenenii udl fajlov viskakivajet tkaja oshibka:
SQL: GROPUP BY clause is missing or invalid
zapros sledujuschij:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SELECT Gh_fields.id, Gh_fields.table_id, Gh_data.field_id,
  Gh_data.main_id, Gh_fields.field_name, Gh_data.data, Gh_data.mode_id
 FROM  gamehalldlv!gh_fields LEFT OUTER JOIN gamehalldlv!gh_data 
   ON  Gh_fields.id = Gh_data.field_id
 WHERE Gh_fields.table_id =  2 
   AND Gh_data.mode_id =  1 
 ORDER BY Gh_fields.table_id, Gh_fields.id
Group by Gh_fields.id
...
Рейтинг: 0 / 0
04.08.2006, 17:53
    #33900653
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FoxPro baza dannih i otcheti v C++ builder 6
А может

Код: plaintext
1.
2.
group by Gh_fields.id, Gh_fields.table_id, Gh_data.field_id,
  Gh_data.main_id, Gh_fields.field_name, Gh_data.data, Gh_data.mode_id
...
Рейтинг: 0 / 0
06.08.2006, 01:38
    #33901591
дед Макар
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FoxPro baza dannih i otcheti v C++ builder 6
dj_ravenpri primenenii udl fajlov viskakivajet tkaja oshibka:
SQL: GROPUP BY clause is missing or invalid
zapros sledujuschij:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SELECT Gh_fields.id, Gh_fields.table_id, Gh_data.field_id,
  Gh_data.main_id, Gh_fields.field_name, Gh_data.data, Gh_data.mode_id
 FROM  gamehalldlv!gh_fields LEFT OUTER JOIN gamehalldlv!gh_data 
   ON  Gh_fields.id = Gh_data.field_id
 WHERE Gh_fields.table_id =  2 
   AND Gh_data.mode_id =  1 
 ORDER BY Gh_fields.table_id, Gh_fields.id
Group by Gh_fields.id


Сначала всегда идет Group BY а затем уж ORDER...
...
Рейтинг: 0 / 0
06.08.2006, 01:43
    #33901595
дед Макар
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FoxPro baza dannih i otcheti v C++ builder 6
dj_ravenpri primenenii udl fajlov viskakivajet tkaja oshibka:
SQL: GROPUP BY clause is missing or invalid
zapros sledujuschij:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
SELECT Gh_fields.id, Gh_fields.table_id, Gh_data.field_id,
  Gh_data.main_id, Gh_fields.field_name, Gh_data.data, Gh_data.mode_id
 FROM  gamehalldlv!gh_fields LEFT OUTER JOIN gamehalldlv!gh_data 
   ON  Gh_fields.id = Gh_data.field_id
 WHERE Gh_fields.table_id =  2 
   AND Gh_data.mode_id =  1 
 ORDER BY Gh_fields.table_id, Gh_fields.id
Group by Gh_fields.id


а учитывая то, что здесь не используются агрегатные функции, становится непонятным применение GROUP by
...
Рейтинг: 0 / 0
07.08.2006, 10:31
    #33902348
JibSkeart
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
FoxPro baza dannih i otcheti v C++ builder 6
Хмм , действительно ...
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / FoxPro baza dannih i otcheti v C++ builder 6 / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]