Database creation error: invalid database name

This forum is for eXpress++ general support.
Message
Author
User avatar
Auge_Ohr
Posts: 1407
Joined: Wed Feb 24, 2010 3:44 pm

Re: Database creation error: invalid database name

#11 Post by Auge_Ohr »

hi,
Eugene Lutsenko wrote: Thu Jul 01, 2021 8:17 pm Hi, Jimmy! What command can I use to do this?
search in your Source Code for DBESYS
more Keyword : DbeLoad and DbeBuild

Code: Select all

   IF !DbeLoad( "CDXDBE", .T. )
      ALERT( "Database-Engine CDXDBE nicht geladen", { "OK" } )
   ENDIF
   IF !DbeLoad( "FOXDBE", .T. )
      ALERT( "Database-Engine FOXDBE nicht geladen", { "OK" } )
   ENDIF
   IF !DbeBuild( "FOXCDX", "FOXDBE", "CDXDBE" )
      ALERT( "FOXCDX Database-Engine;konnte nicht erzeugt werden", { "OK" } )
   ENDIF

  //  FoxPro 2.x 
  * DbeInfo( COMPONENT_DATA, FOXDBE_CREATE_2X, .T. ) 
  * DbeInfo( COMPONENT_DATA, FOXDBE_LOCKMODE , FOXDFBE_LOCKMODE_2X ) 

   // SixDrive/Comix/Clipper 
  * DbeInfo( COMPONENT_DATA, FOXDBE_CREATE_2X, .T. ) 
  * DbeInfo( COMPONENT_DATA, FOXDBE_LOCKMODE , FOXDFBE_LOCKMODE_CLIPPER ) 

   // Visual FoxPro
  DbeInfo( COMPONENT_DATA, FOXDBE_CREATE_2X, .F. ) 
  DbeInfo( COMPONENT_DATA, FOXDBE_LOCKMODE , FOXDFBE_LOCKMODE_VISUAL ) 
greetings by OHR
Jimmy

User avatar
Eugene Lutsenko
Posts: 1649
Joined: Sat Feb 04, 2012 2:23 am
Location: Russia, Southern federal district, city of Krasnodar
Contact:

Re: Database creation error: invalid database name

#12 Post by Eugene Lutsenko »

Thank you, Jimmy! Adding this text solved the problem. Thanks! It's strange, but there was nothing like that in my main program, but it worked... Probably this issue was resolved in a different way.

Victorio
Posts: 621
Joined: Sun Jan 18, 2015 11:43 am
Location: Slovakia

Re: Database creation error: invalid database name

#13 Post by Victorio »

Eugene, look for my _LoadDbes(), default system DbeSys() was not loaded, and instead of this loaded _LoadDbes(),



Code: Select all

************************************************************************
* TESTOVACIA UTILITKA 
************************************************************************ 

#include "dcdialog.ch"
#include "foxdbe.ch"
#include "cdxdbe.ch"
#include "dbfdbe.ch"
#include "dcmsg.ch"
#include "NLS.ch"
#include "Appevent.ch"

#define VK_END            xbeK_END

#IFDEF __XPP__
#ELSE
   REQUEST HB_GT_WIN_DEFAULT           // harbour Console
#ENDIF


*****************
Procedure Main()
*****************
Local cCakajtlv

aStructure := { { "Image_name", "C", 250, 0 },;    
                   { "Short_name", "C", 250, 0 },;    
                   { "Xcentr"    , "N",  19, 7 },;    
                   { "Ycentr"    , "N",  19, 7 },;    
                   { "Array"     , "M",  10, 0 } }    
   DbCreate( "Image.dbf", aStructure, "FOXCDX" )



return nil


****************************
PROCEDURE DbeSys()
****************************
_LoadDbes()

RETURN


****************************************
STATIC FUNCTION _LoadDbes()
****************************************
LOCAL i, aDbeList := DbeList(), cDbeList := ''

*qqq 4.5.2016 znova pokusym dopĺňam a testujem toto, ale nemá to vplyv na triedenie VL

* !!! POZOR !!! , ak je SET COLLATION TO SYSTEM tak to ma veľky vplyv na porovnavanie reťazcov v celom programe !!!
* vtedy je porovnavanie =<>... case insensitive
* preto musím použiť SET COLLATION TO GERMAN, alebo iný

*SET COLLATION TO SYSTEM        // NEDÁVAŤ !!!

SET COLLATION TO GERMAN        // v CDX sa objaví text GERMAN                                // TOTO SKÚŠAM kvôli RLC5D kódovaniu a porovnávaniu reťazcov
                                                                                // lebo ak je SYSTEM,tak je porovnanie case insensitive
DbSetNullValue(.F.)

*SET COLLATION TO ASCII                // v CDX sa neobjaví žiadny text, teda ani SWEFIN
*SET COLLATION TO AMERICAN
* ak nedám nič                        // v CDX sa objaví GENERAL

*qqq 4.5.2016 aj toto dávam podĺa PRAHA, ale nemá vplyv na triedenie

*qqq 13.10.2016 skúšam aktívne podľa rady Bielik test indexov ale asi to nemá vplyv na nič
*Set Optimize Off
*Set Rushmore Off
*Set SmartFilter Off

IF Valtype(aDbeList) = 'A'
  FOR i := 1 TO Len(aDbeList)
    cDbeList += aDbeList[i,1] + ','
  NEXT
ENDIF

aDbeList := cDbeList

  IF !('DBFDBE'$aDbeList) .AND. !DbeLoad( "DBFDBE",.T.)
     DC_WinAlert( "Database-Engine DBFDBE not loaded" )
  ENDIF
  IF !('NTXDBE'$aDbeList) .AND. !DbeLoad( "NTXDBE",.T.)
     DC_WinAlert( "Database-Engine NTXDBE not loaded"  )
  ENDIF
  IF !('DBFNTX'$aDbeList) .AND. !DbeBuild( "DBFNTX", "DBFDBE", "NTXDBE" )
     DC_WinAlert( "DBFNTX Database-Engine, Could not build engine" )
  ENDIF
  IF !('CDXDBE'$aDbeList) .AND. !DbeLoad( "CDXDBE",.T.)
     DC_WinAlert( "Database-Engine CDXDBE not loaded" )
  ENDIF
  IF !('DBFCDX'$aDbeList) .AND. !DbeBuild( "DBFCDX", "DBFDBE", "CDXDBE" )
     DC_WinAlert( "DBFCDX Database-Engine, Could not build engine" )
  ENDIF
  IF !('FOXDBE'$aDbeList) .AND. !DbeLoad( "FOXDBE",.T.)
     DC_WinAlert( "Database-Engine FOXDBE not loaded" )
  ENDIF
  IF !('FOXCDX'$aDbeList) .AND. !DbeBuild( "FOXCDX", "FOXDBE", "CDXDBE" )
     DC_WinAlert( "FOXCDX Database-Engine, Could not build engine" )
  ENDIF
  IF !('DELDBE'$aDbeList) .AND. !DbeLoad( "DELDBE",.T.)
     DC_WinAlert( "Database-Engine DELDBE not loaded" )
  ENDIF

DbeSetDefault( "FOXCDX" )        // toto bolo
*DbeSetDefault( "DBFCDX" )        // toto iba som skúšal, ale bez rozdielu

*qqq 4.5.2016 toto skúšam preddefinovať už tu, hoci všetko preindexujem, ale nemá vplyv
* ale všetko blokujem, lebo som nezistil žeby to malo na dačo vplyv

* toto mám z cdxdbe.ch
* skúsim toto
*DbeInfo(COMPONENT_ORDER,CDXDBE_MODE,CDXDBE_VFOXPRO)
*DbeInfo(COMPONENT_ORDER,CDXDBE_MODE,CDXDBE_FOXPRO2X)        // toto zhavaruje, lebo index je VFP

*DBEINFO(COMPONENT_DATA,FOXDBE_CREATE_2X,TRUE)

* toto mám z foxdbe.ch
*DBEINFO(COMPONENT_DATA,FOXDBE_LOCKMODE,FOXDBE_LOCKMODE_AUTO)
*DBEINFO(COMPONENT_DATA,FOXDBE_LOCKMODE,FOXDBE_LOCKMODE_2X)
*DBEINFO(COMPONENT_DATA,FOXDBE_LOCKMODE,FOXDBE_LOCKMODE_VISUAL)
*DBEINFO(COMPONENT_DATA,FOXDBE_LOCKMODE,FOXDBE_CLIPPER)

* neviem načo to je, blokujem, je to z fora niektorý príspevok
*DBEINFO( COMPONENT_DATA, FOXDBE_LOCKRETRY, 100000 )
*DBEINFO( COMPONENT_ORDER, CDXDBE_LOCKRETRY, 100000 )

*qqq 13.10.2016 doplnené podľa rady Bielik

* skúsim zmeniť z 20 na 0
*DbeInfo(COMPONENT_DATA,  FOXDBE_LIFETIME,       0  )    && bielik
DbeInfo(COMPONENT_DATA,  FOXDBE_LIFETIME,       20 )    && bielik

*qqq implementácia funkcie od Janka, táto iba naplní collation tabuľku a predvolí COLLAT_USER
* ale problém kompatibility z SLOVAK CDX z WISKN pretrváva
*Ritrajv()
*SetColl()

*SetSystemCollation()        // toto skúšam, z internetu zdroj ale je to len asi iná verzia ako upraviť collation

RETURN .t.



Wolfgang Ciriack
Posts: 479
Joined: Wed Jan 27, 2010 10:25 pm
Location: Berlin Germany

Re: Database creation error: invalid database name

#14 Post by Wolfgang Ciriack »

Put this f.e. in your prg-file:

Code: Select all

#include "foxdbe.ch"
#include "cdxdbe.ch"
#include "dbfdbe.ch"
**********************************************************************
PROCEDURE Dbesys
IF !DbeLoad( "FOXDBE",.T.)
   DC_WinAlert( "Database-Engine DBFDBE not loaded" )
ENDIF
IF !DbeLoad( "CDXDBE",.T.)
   DC_WinAlert( "Database-Engine CDXDBE not loaded"  )
ENDIF
IF DbeBuild( "FOXCDX", "FOXDBE", "CDXDBE" )
   DbeSetDefault("FOXCDX")

   DbeInfo(COMPONENT_DATA,FOXDBE_LOCKRETRY,1000000)
   DbeInfo(COMPONENT_DATA,FOXDBE_LOCKDELAY,10)
   DbeInfo(COMPONENT_DATA, FOXDBE_LIFETIME, 0)

   DbeInfo(COMPONENT_ORDER,CDXDBE_LOCKRETRY,1000000)
   DbeInfo(COMPONENT_ORDER,CDXDBE_LOCKDELAY,10)
   DbeInfo(COMPONENT_ORDER, FOXDBE_LOCKMODE, LOCKING_EXTENDED)
ENDIF
return
_______________________
Best Regards
Wolfgang

User avatar
Eugene Lutsenko
Posts: 1649
Joined: Sat Feb 04, 2012 2:23 am
Location: Russia, Southern federal district, city of Krasnodar
Contact:

Re: Database creation error: invalid database name

#15 Post by Eugene Lutsenko »

Thank you, dear friends! Everything works!

Post Reply