Paradox - edge

 
Vista:

edge

Publicado por Indiana (1 intervención) el 07/02/2023 23:25:13
NO FUNCA
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
////////////////////////////////////////////////////////////////////////////
// Nombre.......: abocar.prg
// Parametros...: none
////////////////////////////////////////////////////////////////////////////
 
[Path]
OpenPath=f:\LOC\abocarIIT\
[Revam]
Aurelia=https://a2-telecom.dev.echonet/atpr01_abocar_web_app_a_a_abocarportal/abocarsweetdev/
 
 
 
#define TRUE         .T.
#define FALSE        .F.
 
#include "FileIO.ch"
#include "hmg.ch"
 
FUNCTION Main()
 
 
    Local oInputElement , oButtonElement, lTimeOut := .F.
    Local cURL := "https://a2-argentina.dev.Echonet/"
    Local cURL := "atpr01_abocar_web_app_a_a_abocarportal/
    Local cURL := "abocarsweetdev/"
    Local i, nTimeOut := 9 * 1000           //TimeOut 6 sek
    PUBLIC oIE   As Object
    PUBLIC env  As Object
    PUBLIC term As Object
    PUBLIC OBJETO As Object
    PUBLIC terminalcode := "T099"
    PUBLIC CodTerm      := "T099"
    PUBLIC ccUID       := ""
    PUBLIC ccConfig    := ""
    PUBLIC cFolderTemp := ""
    PUBLIC ccFileTerm  := ""
    PUBLIC cAurelia    := ""
    PUBLIC nHeight     := 0
    PUBLIC nWidth      := 0
    public miState     := 0
    nHeight     := GetDesktopHeight()-100
    nWidth      := GetDesktopWidth()-3
    set( _SET_CODEPAGE, 'UTF8' )
    set( _SET_CODEPAGE, 'UTF8' )
    //
    cAurelia    := "https://a2-argentina.dev.echonet/atpr01_abocar_uat_web_app_a_a_abocarportal/abocarsweetdev/"
    ReadConfig()
    // MsgInfo(cAurelia)
 
    ccUID := GetUserName()
 
    ccFileTerm := cFolderTemp + ccUID + "\telecom.ter"
    // MsgInfo(ccFileTerm )
 
    IF !ReadTerminal()
        QUIT
    ENDIF
 
BEGIN SEQUENCE WITH {|o| break(o)}
 
        // oIE := Win_OleCreateObject( "InternetExplorer.Application" )
        // oIE := Win_OleCreateObject( "SolidEdge.Application" )
        oIE := CreateObject("SolidEdge.Application")
        oIE:Visible := .F.
 
        oIE:Navigate( cURL )
        IE_TimeOUT( nTimeOut )                                          //ustaw TimeOut
        Do While oIE:readyState # 4
                Do Events
                IF IE_TimeOUT()                                         //sprawdz TimeOut
                        lTimeOut := .T.
                        BREAK
                ENDIF
        EndDo
 
        //Sprawdzenie serwisu ...
        IE_TimeOUT( nTimeOut )                                          //ustaw TimeOut
        Do While oIE:Busy()
                IF IE_TimeOUT()                                         //sprawdz TimeOut
                        lTimeOut := .T.
                        BREAK
                ENDIF
        EndDo
 
        hb_idleSleep( 4 )
 
        IE_TimeOUT( nTimeOut )                                          //ustaw TimeOut
        Do While oInputElement = Nil                                    //czekaj na zaladowanie elementów name="charSearch"
                oInputElement := oIE:Document:GetElementsByName("edTerminal")
                IF IE_TimeOUT()                                         //sprawdz TimeOut
                        lTimeOut := .T.
                        BREAK
                ENDIF
        EndDo
 
        FOR i := 1 TO oInputElement:Length
                IF oInputElement:Item( i-1 ):getAttribute("type") == "text"
                         oInputElement:Item( i-1 ):Value := "T023"              //ustaw wyszukiwanie na "conversor de mp3 a wav"
                ENDIF
        NEXT i
 
        IE_TimeOUT( nTimeOut )                                          //ustaw TimeOut
        Do While oIE:readyState # 4
                Do Events
                // IF IE_TimeOUT()                                         //sprawdz TimeOut
                //         lTimeOut := .T.
                //         BREAK
                // ENDIF
        ENDDO
 
        oIE:document:forms(0):all("edTerminal"):Value := CodTerm
        oIE:document:Title := "Ud esta Usando la Terminal -->  [ " + CodTerm  + "  ]"
 
        oIE:document:Forms[0]:submit()
        oIE:visible := .T.
 
        SendMessage( oIE:hWnd, WM_SYSCOMMAND, 0xf030  /* SC_MAXIMIZE */, 0)
 
 
RECOVER USING oErr
 
        IF lTimeOut
                MsgStop( "TimeOut" )
        ELSE
                MsgStop(win_oleErrorText() + crLF + oErr:Description)
        ENDIF
 
        IF VALTYPE(oIE)='O'
                oIE:Quit()
        ENDIF
 
END SEQUENCE
 
RETURN
***********************************************************
Function IE_TimeOUT(nCzekaj)
STATIC nTimeIni := 0
 
IF VALTYPE(nCzekaj)='N' .AND. nCzekaj > 0
        nTimeIni := hb_MilliSeconds() + nCzekaj
        RETURN .F.
ENDIF
 
DO EVENTS
hb_releaseCPU()
 
RETURN hb_MilliSeconds() > nTimeIni
 
 
////////////////////////////////////////////////////////////////////////////
//
//    oIE := CreateObject("InternetExplorer.Application")
//    // oIE:navigate2( "https://a2-argentina.dev.echonet/atpr01_abocar_uat_web_app_a_a_abocarportal/abocarsweetdev/" )
//    oIE:navigate2( cAurelia )
//    oIE:Visible := TRUE
//    // oIE:Top     := 0
//    // oIE:Left    := 0
//    // oIE:Height  := nHeight
//    // oIE:Width   := nWidth
//    // oIE:FullScreen := TRUE
//    Inkey(5)
//    DoEvents()
//    Do While oIE:ReadyState != 4
//         // While oIE.Busy Or oIE.ReadyState <> READYSTATE_COMPLETE: DoEvents: Wend
//         DoEvents()
//    ENDDO
//    ShowWindow( oIE:hwnd, SW_SHOWMAXIMIZED )
//
////////////////////////////////////////////////////////////////////////////
 
////////////////////////////////////////////////////////////////////////////
// Nombre.......: ReadTerminal()
// Parametros...: none
// Descripcion..: Lee el archivo de la red
// Autor........: Ismael Farfan
// Fecha........: 11-04-2019
////////////////////////////////////////////////////////////////////////////
FUNCTION ReadTerminal()
 
     LOCAL ccString
     IF ( ccString := MEMOREAD(ccFileTerm)) == ""
          //
          ccFileTerm := cFolderTran + "\telecom.ter"
          IF ( ccString := MEMOREAD(ccFileTerm)) == ""
               MsgInfo("no se puede leer archivo de la terminal secundario" + ;
                       hb_OsNewLine() + ccFileTerm )
               RETURN .F.
          ENDIF
          CodTerm := terminalcode
     ENDIF
     CodTerm := ccString
 
RETURN( .T. )
 
////////////////////////////////////////////////////////////////////////////
// Nombre.......: ReadConfig()
// Parametros...: none
// Descripcion..: Lee el archivo abocar.Ini y saca el path del "telecom.ter"
// Autor........: Ismael Farfan
// Fecha........: 11-04-2019
////////////////////////////////////////////////////////////////////////////
FUNCTION ReadConfig()
 
    ccConfig := "abocar.ini"
 
    IF FILE( ccConfig )
        BEGIN INI FILE ( ccConfig )
             GET cFolderTemp    SECTION "Path"   ENTRY "OpenPath"
             GET cAurelia       SECTION "Revam"  ENTRY "Aurelia"
        END INI
    ELSE
 
        cFolderTemp := "f:\LOC\telecomT\"
        BEGIN INI FILE ( ccConfig )
              SET SECTION "Path"   ENTRY "OpenPath"  TO cFolderTemp
              SET SECTION "Revam"  ENTRY "Aurelia"   TO cAurelia
        END INI
 
    ENDIF
 
RETURN NIL
 
////////////////////////////////////////////////////////////////////////////
// Nombre.......: ReadConfig()
// Parametros...: none
// Descripcion..: Lee el archivo abocar.Ini y saca el path del "telecom.ter"
// Autor........: Ismael Farfan
// Fecha........: 11-04-2019
////////////////////////////////////////////////////////////////////////////
FUNCTION ISM_Grabar()
 
      BEGIN INI FILE ( ccConfig )
            SET SECTION "Path"   ENTRY "OpenPath"  TO cFolderTemp
            SET SECTION "Revam"  ENTRY "Aurelia"   TO cAurelia
      END INI
 
RETURN NIL
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

edge

Publicado por gugu (2 intervenciones) el 26/07/2025 02:29:35
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
67
68
69
70
71
72
73
74
75
---------------------------------------------------------------------------
--
--
--
--
--
--
--
---------------------------------------------------------------------------
BEGIN TRANSACTION;
 
-- Eliminar todas las vistas para poder crearla nuevamente
Drop Table Rubrique;
Drop Table Rub_Full;
DROP TABLE TABTAB;
DROP TABLE TABRUB;
 
-- Eliminar todas las vistas para poder crearla nuevamente
Drop View FRubrique;
Drop View ERubrique;
Drop View Srubrique;
 
Create Table Rubrique (
Norubr       Varchar(12) Not Null ,      -- ,00,00  Nombre de Rubrica
Codlang      Smallint    Not Null ,      -- ,00,12  Codigo de Idioma
Librub       Varchar(30) Not Null ,      -- ,00,18  Libelle de la rubrique
Modifiable   Char   (01) Not Null );     -- ,00,48  Indi. Modificable
 
Create Table Rub_Full (
Norubr       Varchar(12) Not Null ,      -- ,00,00  Nombre de Rubrica
Librub       Varchar(30) Not Null );     -- ,00,30  Libelle de la rubrique
 
Create View FRubrique (
Norubr       ,
Codlang      ,
Librub       ,
Modifiable   ) AS SELECT Norubr       ,
                         Codlang      ,
                         Librub       ,
                         Modifiable   FROM Rubrique WHERE Codlang = 1;
Create View ERubrique (
Norubr       ,
Codlang      ,
Librub       ,
Modifiable   ) AS SELECT Norubr       ,
                         Codlang      ,
                         Librub       ,
                         Modifiable   FROM Rubrique WHERE Codlang = 2;
Create View SRubrique (
Norubr       ,
Codlang      ,
Librub       ,
Modifiable   ) AS SELECT Norubr       ,
                         Codlang      ,
                         Librub       ,
                         Modifiable   FROM Rubrique WHERE Codlang = 3;
CREATE TABLE TABTAB (
CODTAB       Varchar(06) Not Null ,        -- NOT NULL CHAR(6)
CODPAC       Char   (04) Not Null ,        -- NOT NULL CHAR(4)
LIBTAB       Varchar(50) Not Null ,        -- NOT NULL CHAR(50)
PORTEE       Char   (01) Not Null ,        -- NOT NULL CHAR(1)
NBRUBR       Smallint    Not Null ,        -- NOT NULL NUMBER(3)
LENREG       Smallint    Not Null );       -- NOT NULL NUMBER(3)
 
CREATE TABLE TABRUB (
CODTAB       Varchar(06) Not Null ,        -- NOT NULL CHAR  (06)
CODPAC       Char   (04) Not Null ,        -- NOT NULL CHAR  (04)
CLERUB       Char   (04) Not Null ,        -- NOT NULL CHAR  (01)
NUMRUB       Smallint    Not Null ,        -- NOT NULL NUMBER(03)
CODRUB       Char   (04) Not Null ,        -- NOT NULL CHAR  (06)
LIBRUB       Varchar(06) Not Null ,        -- NOT NULL CHAR  (42)
FORMAT       Varchar(06) Not Null ,        -- NOT NULL CHAR  (12)
REPRUB       Smallint    Not Null );       -- NOT NULL NUMBER(02)
 
END TRANSACTION ;


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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
// call ..\..\..\batch\compile.bat demo %1 /c /l sqlite3facade /l hbsqlit3 /l sqlite3 %2 %3 %4 %5 %6 %7 %8 %9
// call ..\..\..\batch\compile.bat demo2 %1 /c /l sqlite3facade /l hbsqlit3 /l sqlite3 %2 %3 %4 %5 %6 %7 %8 %9
 
#include "common.ch"
#include "hmg.ch"
 
#define  PUSHF         0x0A
#define  PUSHP         0x0D
#define  dbCom         Chr(34)
#define  smCom         Chr(34)
 
FUNCTION Main()
 
        LOCAL cRubrique := "Rubrique.txt"
        LOCAL cRub_Full := "Rub_full.txt"
        LOCAL aLineas   := {}
        LOCAL aValores  := {}
        LOCAL nHand     := 0
        LOCAL n         := 0
        LOCAL cLinea    := ""
        LOCAL cRubrica  := ""
        LOCAL cIdioma   := ""
        LOCAL nIdioma   := 0
        LOCAL cLibelle  := ""
        LOCAL cModific  := ""
        LOCAL cInsert1  := ""
 
        LOCAL lOk
 
        PUBLIC dbLite   AS OBJECT
        PUBLIC arUnitab := "ARUnitab.db3"
 
        if .not. file(arUnitab)
            return nil
        endif
        QOut("Connecting to database... ")
	dbLite := connect2db( arUnitab, .F.)
        If dbLite == nil
            return nil
        Endif
 
        Qout("Deleteing table... " )
        // drop created table
        // lOk := miscsql(dbLite, "delete from Rubrique" )
 
        Qout("PROCESARA EL ARHIVO [ " + cRubrique + " ]")
        aLineas := hb_ATokens(MemoRead( cRubrique ) , CRLF )
        nHand   := LEN(aLineas)
        Qout("Cantidad de Lineas de [ " + cRubrique + " ] ==" + str(nHand) )
        IF nHand > 0
 
           FOR n := 1 TO nHand Step 1
               cLinea := aLineas[n]
               IF LEN(cLinea) > 0
                  cLinea := ALLTRIM(cLinea)
               ENDIF
               IF  LEN(cLinea) > 0
 
                   aValores := HB_aTokens(cLinea, ";")
 
                   cRubrica := aValores[1]
                   cRubrica := Alltrim( StrTran( cRubrica, dbCom, " " ) )
 
                   cIdioma  := aValores[2]
                   cIdioma  := Alltrim( StrTran( cIdioma, dbCom, " " ) )
 
                   cLibelle := aValores[3]
                   cLibelle := Alltrim( StrTran( cLibelle, dbCom, " " ) )
 
                   cModific := aValores[4]
                   cModific := Alltrim( StrTran( cModific, dbCom, " " ) ) + " "
 
                   lOk := miscsql(dbLite, "Insert into Rubrique ( Norubr, Codlang, Librub, Modifiable ) " + ;
                                           "Values ( " + ;
                                                 + C2SQL(cRubrica) + ", " + ;
                                                 + cIdioma  + ", " + ;
                                                 + C2SQL(cLibelle) + ", " + ;
                                                 + C2SQL(cModific) + " );" )
               ENDIF
           NEXT n
 
        ENDIF
 
        Qout("Deleteing table... " )
        // drop created table
        lOk := miscsql(dbLite, "DELETE FROM Rub_Full;" )
 
        Qout("PROCESARA EL ARHIVO [ " + cRub_Full + " ]")
        aLineas   := {}
        aLineas := hb_ATokens(MemoRead( cRub_Full ) , CRLF )
        nHand   := LEN(aLineas)
        Qout("Cantidad de Lineas de [ " + cRub_Full + " ] ==" + str(nHand) )
 
        IF nHand > 0
 
           FOR n := 1 TO nHand Step 1
               cLinea := aLineas[n]
               IF LEN(cLinea) > 0
                  cLinea := ALLTRIM(cLinea)
               ENDIF
               IF  LEN(cLinea) > 0
 
                   aValores := HB_aTokens(cLinea, ";")
 
                   cRubrica := aValores[1]
                   cRubrica := Alltrim( StrTran( cRubrica, dbCom, " " ) )
 
                   cLibelle := aValores[2]
                   cLibelle := Alltrim( StrTran( cLibelle, dbCom, " " ) )
 
                   lOk := miscsql(dbLite, "Insert into Rub_Full ( Norubr, Librub ) Values ( " + ;
                                 + C2SQL(cRubrica) +  + ", " + ;
                                 + C2SQL(cLibelle) +  + " )" )
                   QOut(cInsert1)
               ENDIF
           NEXT n
 
        ENDIF
        dbLite:close()
 
RETURN NIL
 
#Include "sql1.Prg"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

edge

Publicado por guola (1 intervención) el 29/07/2025 00:33:29
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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
////////////////////////////////////////////////////////////////////////////
// Nombre.......: abocar.prg
// Parametros...: none
////////////////////////////////////////////////////////////////////////////
 
#include "minigui.ch"
#ifndef __MINIPRINT__
  #define __MINIPRINT__
  MEMVAR _HMG_MINIPRINT
#endif
 
 
#include "hbsqlit3.ch"
#include "FileIO.ch"
#include "Include\ArUnitab.ch"
 
#define TRUE         .T.
#define FALSE        .F.
 
 
#ifdef __XHARBOUR__
   #xcommand OTHERWISE => DEFAULT
#endif
#translate Alert( <c>, <t> ) => MsgExclamation( <c>, <t> )
 
PROCEDURE Main()
 
    PUBLIC dbLite    As Object
    PUBLIC ccNomBase := "ArUnitab.db8"
    PUBLIC aTablas   As Array
    PUBLIC cServer
    PUBLIC cUser
 
    PUBLIC nHeight     := 0
    PUBLIC nWidth      := 0
 
    HB_SETCODEPAGE("ESWIN")
    SET LANGUAGE TO SPANISH //SELECT LANGUAGE FOR INTERFACE MESSAGES
 
    SET DATE FRENCH
    SET century ON
    SET multiple OFF warning
 
    nHeight     := GetDesktopHeight()-100
    nWidth      := GetDesktopWidth()-5
 
    IF FILE("ArUnitab.ini")
       BEGIN INI FILE "ArUnitab.ini"
           GET cServer   SECTION "Login" ENTRY "server"
           GET cUser     SECTION "Login" ENTRY "user"
       END INI
    ELSE
       BEGIN INI FILE "ArUnitab.ini"
           SET SECTION "Login" ENTRY "server" TO cServer
           SET SECTION "Login" ENTRY "user"   TO cUser
       END INI
    ENDIF
    set( _SET_CODEPAGE, 'UTF8' )
    set( _SET_CODEPAGE, 'UTF8' )
 
    // BEGIN SEQUENCE WITH {|o| break(o)}
 
    ConnectdbLite()
 
    DEFINE WINDOW mnmain AT 00,00 WIDTH nWIDTH HEIGHT nHEIGHT ;
           TITLE SISTEMA ;
           ICON  "ICONMAIN" ;
	   MAIN ;
	   ON INIT OnInit()
 
        @090,005 GRID gRubrique WIDTH nWIDTH-6 HEIGHT nHEIGHT-180 ;
                 HEADERS { "CUSTNUM","FIRSTNAME","LASTNAME","ADDRESS","CITY","STATE","MARRIED","PHONE","FAX" } ;
                 WIDTHS { 100,100,100,250,150,30,70,130,130 } ;
                 VALUE 1 ;
                 ITEMS nil
                 ON DBLCLICK bil
 
 
        @nHEIGHT-150,010 label lbmensaje value "---" ;
                         WIDTH 500  height 24 ;
                         FONT "Consolas" SIZE 11 ;
                         TRANSPARENT
    END WINDOW
    MAXIMIZE WINDOW mnmain
    ACTIVATE WINDOW mnmain
 
RETURN
 
 
PROCEDURE OnInit()
 
RETURN
&&-------------------------------------------------------------------&&
&&
&&
&&
&&
&&
&&
&&-------------------------------------------------------------------&&
PROCEDURE ConnectdbLite()
      LOCAL cHeader, cQuery := "", NrReg:= 0
      // LOCAL cTable := cFileNoExt(ccNomBase)
      LOCAL lCreateIfNotExist := .f.
      IF  !FILE( ccNomBase )
          lCreateIfNotExist := .T.
      ENDIF
      dbLite := sqlite3_open( ccNomBase, lCreateIfNotExist )
      // sqlite3_exec( dbLite, "PRAGMA auto_vacuum=0" )
      aTablas := SQLITE_TABLES()
      IF LEN( aTablas )==0
          CreateAllTable()
          aTablas := SQLITE_TABLES()
      ENDIF
RETURN
 
&&-------------------------------------------------------------------&&
&&
&&
&&
&&
&&
&&
&&-------------------------------------------------------------------&&
PROCEDURE CreateAllTable()
      LOCAL ccCreate := "Create Table Rubrique ( " + ;
                        "Norubr       Varchar(12) Not Null, " + ;
                        "Codlang      Smallint    Not Null, " + ;
                        "Librub       Varchar(30) Not Null, " + ;
                        "Modifiable   Char   (01) Not Null ); "
      IF sqlite3_exec( dbLite, ccCreate ) == SQLITE_OK
         Message("Create Table Rubrique.... Tabla Creada con exito!!!")
         Inkey(1)
      ENDIF
      ccCreate := "Create Table Rub_Full ( " + ;
                  "Norubr       Varchar(12) Not Null , " + ;
                  "Librub       Varchar(30) Not Null ); "
      IF sqlite3_exec( dbLite, ccCreate ) == SQLITE_OK
         Message("Create Table Rub_Full.... Tabla Creada con exito!!!")
         Inkey(1)
      ENDIF
      ccCreate := "Create View FRubrique ( " + ;
                  "Norubr     , " + ;
                  "Codlang    , " + ;
                  "Librub     , " + ;
                  "Modifiable ) AS SELECT Norubr  , " + ;
                                         "Codlang , " + ;
                                         "Librub  , " + ;
                                         "Modifiable FROM Rubrique WHERE Codlang = 1; "
      IF sqlite3_exec( dbLite, ccCreate ) == SQLITE_OK
         Message("Create View FRubrique.... Vista Creada con exito!!!")
         Inkey(1)
      ENDIF
      ccCreate := "Create View ERubrique ( " + ;
                  "Norubr     , " + ;
                  "Codlang    , " + ;
                  "Librub     , " + ;
                  "Modifiable ) AS SELECT Norubr  , " + ;
                                         "Codlang , " + ;
                                         "Librub  , " + ;
                                         "Modifiable FROM Rubrique WHERE Codlang = 2; "
      IF sqlite3_exec( dbLite, ccCreate ) == SQLITE_OK
         Message("Create View ERubrique.... Vista Creada con exito!!!")
         Inkey(1)
      ENDIF
      ccCreate := "Create View SRubrique ( " + ;
                  "Norubr     , " + ;
                  "Codlang    , " + ;
                  "Librub     , " + ;
                  "Modifiable ) AS SELECT Norubr  , " + ;
                                         "Codlang , " + ;
                                         "Librub  , " + ;
                                         "Modifiable FROM Rubrique WHERE Codlang = 3; "
      IF sqlite3_exec( dbLite, ccCreate ) == SQLITE_OK
         Message("Create View SRubrique.... Vista Creada con exito!!!")
         Inkey(1)
      ENDIF
      ccCreate := "CREATE TABLE TABTAB ( " + ;
                  "CODTAB       Varchar(06) Not Null , " + ;
                  "CODPAC       Char   (04) Not Null , " + ;
                  "LIBTAB       Varchar(50) Not Null , " + ;
                  "PORTEE       Char   (01) Not Null , " + ;
                  "NBRUBR       Smallint    Not Null , " + ;
                  "LENREG       Smallint    Not Null );"
      IF sqlite3_exec( dbLite, ccCreate ) == SQLITE_OK
         Message("CREATE TABLE TABTAB.... Tabla Creada con exito!!!")
         Inkey(1)
      ENDIF
      ccCreate := "CREATE TABLE TABRUB ( " + ;
                  "CODTAB       Varchar(06) Not Null , " + ;
                  "CODPAC       Char   (04) Not Null , " + ;
                  "CLERUB       Char   (04) Not Null , " + ;
                  "NUMRUB       Smallint    Not Null , " + ;
                  "CODRUB       Char   (04) Not Null , " + ;
                  "LIBRUB       Varchar(06) Not Null , " + ;
                  "FORMAT       Varchar(06) Not Null , " + ;
                  "REPRUB       Smallint    Not Null ); "
      IF sqlite3_exec( dbLite, ccCreate ) == SQLITE_OK
         Message("CREATE TABLE TABRUB.... Tabla Creada con exito!!!")
         Inkey(1)
      ENDIF
RETURN
 
FUNCTION Message( charmesg )
     mnmain.lbmensaje.value := charmesg
RETURN NIL
 
#include "Include\IsmaSQL.prg"


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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
#include "hmg.ch"
// #include "hbsqlit3.ch"
 
#ifdef __XHARBOUR__
   #xcommand OTHERWISE => DEFAULT
#endif
#translate Alert( <c>, <t> ) => MsgExclamation( <c>, <t> )
 
&&-------------------------------------------------------------------&&
&&
&&
&&
&&
&&
&&
&&-------------------------------------------------------------------&&
PROCEDURE ShowVersion()
      ALERT( "Version library = " + sqlite3_libversion() + CRLF + ;
             "number version library = " + LTRIM(STR( sqlite3_libversion_number() )), ;
             "SQLITE INFO" )
RETURN
&&-------------------------------------------------------------------&&
&&
&&
&&
&&
&&
&&
&&-------------------------------------------------------------------&&
Function ReportData ( cSearch )
      Local aResult, i
      Local aRtv := {}
      aResult := SQLITE_QUERY( dbLite, "SELECT CODE, NAME FROM Names WHERE NAME LIKE "+cSearch+" ORDER BY NAME" )
      if LEN(aResult) > 0
         For i := 1 To LEN(aResult) Step 2
             aadd(aRtv,{val(aResult[i]),space(3)+aResult[i+1]})
         next
      endif
Return(aRtv)
&&-------------------------------------------------------------------&&
&&
&&
&&
&&
&&
&&
&&-------------------------------------------------------------------&&
Function Set_Record( status, cName, cEMail, gCode )
      Local cQuery
      Local lRet := .f.
      If status == 1
          cQuery := "INSERT INTO Names  VALUES ( NULL, '"+AllTrim(UPPER(cName))+"' , '"+cEmail+ "' ) "
      Else
          cQuery := "UPDATE Names SET  NAME = '"+cName+"' , eMail = '"+cEMail+"'  WHERE CODE = " + AllTrim(gCode)
      Endif
      If sqlite3_exec( dbLite, cQuery ) == SQLITE_OK
          // MsgInfo( iif(status== 1, "Record is added", "Record is updated"), "Result" )
          lRet := .f.
      Endif
RETURN( lRet )
&&-------------------------------------------------------------------&&
&&
&&
&&
&&
&&
&&
&&-------------------------------------------------------------------&&
Function Delete_Record()
      Local cQuery
      Local oQuery
      Local lRet := .f.
      If !Empty( gName )
          cQuery:= "DELETE FROM Tablita  WHERE Columnita = " + AllTrim(gCode)
          If sqlite3_exec( dbLite, cQuery ) == SQLITE_OK
              lRet := .T.
          EndIf
      EndIf
RETURN( lRet )
&&-------------------------------------------------------------------&&
&&
&&
&&
&&
&&
&& Uses a (special) master table where the names of all tables are stored
&&-------------------------------------------------------------------&&
FUNCTION SQLITE_TABLEEXISTS( cTable )
      LOCAL cStatement, lRet := .f.
      LOCAL lCreateIfNotExist := .f.
      dbLite := sqlite3_open( ccNomBase,  lCreateIfNotExist )
      cStatement := "SELECT name FROM sqlite_master "    +;
                    "WHERE type ='table' AND tbl_name='" +;
                    cTable + "'"
      IF DB_IS_OPEN( dbLite )
          lRet := ( LEN( SQLITE_QUERY( db, cStatement ) ) > 0 )
      ENDIF
RETURN( lRet )
&&-------------------------------------------------------------------&&
&&
&&
&&
&&
&& Deletes a table from current database
&& WARNING !!   It deletes forever...
&&-------------------------------------------------------------------&&
FUNCTION SQLITE_DROPTABLE(cTable)
      LOCAL lRet := .F.
      IF !EMPTY(cTable)
          dbLite := sqlite3_open_v2( ccNomBase,  SQLITE_OPEN_READWRITE + SQLITE_OPEN_EXCLUSIVE )
          IF  DB_IS_OPEN( dbLite )
              IF sqlite3_exec( dbLite, "drop table " + cTable ) == SQLITE_OK
                  IF sqlite3_exec( dbLite, "vacuum" ) == SQLITE_OK
                      lRet := .T.
                  ENDIF
              ENDIF
          ENDIF
      ENDIF
RETURN( lRet )
&&-------------------------------------------------------------------&&
&&
&&
&&
&&
&&
&& Returns an unidimensional array with field names only
&&-------------------------------------------------------------------&&
FUNCTION SQLITE_FIELDS( cTable )
      LOCAL aFields := {}, cStatement := "SELECT * FROM " + cTable
      LOCAL lCreateIfNotExist := .f.
      LOCAL stmt, nCCount, nI
      dbLite := sqlite3_open( ccNomBase, lCreateIfNotExist )
      stmt := sqlite3_prepare( dbLite, cStatement )
      sqlite3_step( stmt )
      nCCount := sqlite3_column_count( stmt )
      IF  nCCount > 0
          FOR nI := 1 TO nCCount Step 1
               AADD( aFields, sqlite3_column_name( stmt, nI ) )
          NEXT nI
      ENDIF
      sqlite3_finalize( stmt )
 
RETURN( aFields )
&&-------------------------------------------------------------------&&
&&
&&
&&
&&
&&
&& Returns an 2-dimensional array with field names and types
&&-------------------------------------------------------------------&&
FUNCTION SQLITE_COLUMNS( cTable )
      LOCAL aCType :=  { "SQLITE_INTEGER", "SQLITE_FLOAT", "SQLITE_TEXT", "SQLITE_BLOB", "SQLITE_NULL" }
      LOCAL aFields := {}, cStatement := "SELECT * FROM " + cTable
      LOCAL lCreateIfNotExist := .f.
      LOCAL stmt, nCCount, nI, nCType
      dbLite := sqlite3_open( ccNomBase, lCreateIfNotExist )
      stmt := sqlite3_prepare( dbLite, cStatement )
      sqlite3_step( stmt )
      nCCount := sqlite3_column_count( stmt )
      IF  nCCount > 0
          FOR nI := 1 TO nCCount Step 1
               nCType := sqlite3_column_type( stmt, nI )
               AADD( aFields, { sqlite3_column_name( stmt, nI ), aCType[ nCType ] } )
          NEXT nI
      ENDIF
      sqlite3_finalize( stmt )
RETURN( aFields )
&&-------------------------------------------------------------------&&
&&
&&
&&
&&
&&
&& Uses a (special) master table where the names of all tables are stored
&& Returns an array with names of tables inside of the database
&&-------------------------------------------------------------------&&
FUNCTION SQLITE_TABLES()
      LOCAL aTables, cStatement
      LOCAL lCreateIfNotExist := .f.
      LOCAL dbLite := sqlite3_open( ccNomBase, lCreateIfNotExist )
 
      cStatement := "SELECT name FROM sqlite_master "      +;
                    "WHERE type IN ('table','view') "      +;
                    "AND name NOT LIKE 'sqlite_%' "        +;
                    "UNION ALL "                           +;
                    "SELECT name FROM sqlite_temp_master " +;
                    "WHERE type IN ('table','view') "      +;
                    "ORDER BY 1;"
 
      IF DB_IS_OPEN( dbLite )
          aTables := SQLITE_QUERY( dbLite, cStatement )
      ENDIF
RETURN( aTables )
&&-------------------------------------------------------------------&&
&&
&&
&&
&&
&&
&&
&&
&&-------------------------------------------------------------------&&
FUNCTION SQLITE_QUERY( cStatement )
      LOCAL stmt, nCCount, nI, nCType
      LOCAL aRet := {}
      stmt := sqlite3_prepare( dbLite, cStatement )
      IF STMT_IS_PREPARED( stmt )
          DO WHILE sqlite3_step( stmt ) == SQLITE_ROW
              nCCount := sqlite3_column_count( stmt )
              IF nCCount > 0
                 FOR  nI := 1 TO nCCount
                      nCType := sqlite3_column_type( stmt, nI )
                      // SWITCH nCType
                      do case
                          CASE nCType==SQLITE_NULL
                               AADD( aRet, "NULL")
                               EXIT
 
                          CASE nCType==SQLITE_FLOAT
                          CASE nCType==SQLITE_INTEGER
                               AADD( aRet, LTRIM(STR( sqlite3_column_int( stmt, nI ) )) )
                               EXIT
 
                          CASE nCType==SQLITE_TEXT
                               AADD( aRet, sqlite3_column_text( stmt, nI ) )
                               EXIT
                      end case
		      //ENDSWITCH
                 NEXT nI
              ENDIF
          ENDDO
          sqlite3_finalize( stmt )
      ENDIF
 
RETURN( aRet )

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
#define INDVER      "Version 1.0.99(L)"
#define INDSYS      "Ar Unitab"
#define SISTEMA     INDSYS + " " + INDVER
 
#define FinLinea    Chr(13) + Chr(10)
 
#define TRUE        .T.
#define FALSE       .F.
 
#define FinLinea2   Chr(13) + Chr(10) + Chr(13) + Chr(10)
 
#define SQuote      Chr(39)
#define DQuote      Chr(34)
 
#define CTab1       SPACE(05)
#define CTab2       SPACE(10)
#define CTab3       SPACE(15)
#define CTab5       SPACE(20)
#define CTab6       SPACE(25)
#define CTab7       SPACE(30)
#define CTab8       SPACE(35)
#define CTab9       SPACE(40)
#define CTabX       SPACE(45)
#define CTabZ       SPACE(50)
 
#define LineSep    "//" + REPLICATE("-", 68) + "//" + Chr(13) + Chr(10)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

edge

Publicado por SUperDuma (12 intervenciones) el 05/09/2025 20:54:22
[url]
https://www.sqlines.com/mysql-to-oracle/drop_table_if_exists
[/url]
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

edge

Publicado por DumaLon (1 intervención) el 03/10/2025 16:08:36
prompt
1
PS1='$ $HOST:${A2_LIBENV}:$PWD ${GIT_BRANCH}<$USER:$?> '
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar