Fiz os testes no passo-a-passo postado e usei o RUN1ST.PRG como exemplo.
Código: Selecionar todos
/************************************************************
** **
** File: RUN1ST.PRG **
** Description: **
** Creates tables for sample programs using MEDNTX RDD **
** **
** Copyright (c) 1997-1999, OTC S.A. **
** All Right Reserved. **
** **
************************************************************/
#include "mediator.ch" // linha indispensavel 1
function main()
request medntx // linha indispensavel 2
RDDSETDEFAULT("MEDNTX") // linha indispensavel 3
aDeptData := { { 10, "ACCOUNTING", "NEW YORK" }, ;
{ 20, "RESEARCH", "DALLAS" }, ;
{ 30, "SALES", "CHICAGO" }, ;
{ 40, "OPERATIONS", "BOSTON" } }
aEmpData := { { 7839,'KING', 'PRESIDENT','17/11/81',5000,10 }, ;
{ 7698,'BLAKE', 'MANAGER', '01/03/81',2850,30 }, ;
{ 7782,'CLARK', 'MANAGER', '09/06/81',2450,10 }, ;
{ 7566,'JONES', 'MANAGER', '02/04/81',2975,20 }, ;
{ 7654,'MARTIN','SALESMAN', '28/08/81',1250,30 }, ;
{ 7499,'ALLEN', 'SALESMAN', '20/02/81',1600,30 }, ;
{ 7844,'TURNER','SALESMAN', '08/08/81',1500,30 }, ;
{ 7900,'JAMES', 'CLERK', '03/12/81',950, 30 }, ;
{ 7521,'WARD', 'SALESMAN', '22/02/81',1250,30 }, ;
{ 7902,'FORD', 'ANALYST', '03/12/81',3000,20 }, ;
{ 7369,'SMITH', 'CLERK', '17/12/80',800, 20 }, ;
{ 7788,'SCOTT', 'ANALYST', '09/12/82',3000,20 }, ;
{ 7876,'ADAMS', 'CLERK', '12/01/83',1100,20 }, ;
{ 7934,'MILLER','CLERK', '23/01/82',1300,10 } }
CLS
? 'Iniciando'
/*
// So use isto que quizer entrar direto sem a tela de login na abertura
logRes := MedLogin("","localhost","19C8","root","SuaSenha","SeuDatabase")
if logRes <= 0
? 'Problema para se logar ao servidor'
endif
*/
* Create CLPDB table
//IF TabNotEx( "CLPDB" ) // Desativei pois deu erro Nesta funcao
aCDef := {}
AADD( aCDef, { "CHAR_F", "C", 10, 0 } )
AADD( aCDef, { "INT_F", "N", 4, 0 } )
AADD( aCDef, { "NUM_F", "N", 10, 3 } )
AADD( aCDef, { "DATE_F", "D", 0, 0 } )
AADD( aCDef, { "LOG_F", "L", 0, 0 } )
AADD( aCDef, { "MEMO_F", "M", 0, 0 } )
? "Creating CLPDB table"
DBCREATE( "CLPDB", aCDef )
USE CLPDB
? "Creating index on CLPDB (CHAR_F)"
INDEX ON CHAR_F TO CHAR_FI
? "Creating index on CLPDB (INT_F)"
INDEX ON INT_F TO INT_FI
? "Creating index on CLPDB (NUM_F)"
INDEX ON NUM_F TO NUM_FI
? "Creating index on CLPDB (DATE_F)"
INDEX ON DATE_F TO DATE_FI
? "Creating index on CLPDB (LOG_F)"
INDEX ON LOG_F TO LOG_FI
? "Creating expression index on CLPDB (CHAR_F+STR(INT_F,4))"
INDEX ON CHAR_F+STR(INT_F,4) TO EXP_I
? "Inserting data into CLPDB"
FOR i := 1 TO 200
APPEND BLANK
cval := PADR( "", i%10, CHR(i+65) )
REPLACE char_f WITH cval
REPLACE int_f WITH i
REPLACE num_f WITH i+100.84
REPLACE date_f WITH CTOD( '01/01/98') + i
REPLACE log_f WITH IF( i%2=0, .T., .F. )
REPLACE memo_f WITH "Memo "+alltrim(str(i))
IF i%10 == 0
? "Records "+alltrim(str(i-10))+"-"+alltrim(str(i))+ " inserted successfully"
ENDIF
NEXT i
USE
//ENDIF
* Create DEPT table
//IF TabNotEx( "DEPT" ) // Desativei pois deu erro Nesta funcao
aDDef := {}
AADD( aDDef, { "DEPTNO", "N", 2, 0 } )
AADD( aDDef, { "DNAME", "C", 14, 0 } )
AADD( aDDef, { "LOC", "C", 13, 0 } )
? "Creating DEPT table"
DBCREATE( "DEPT", aDDef )
USE DEPT
? "Creating index on DEPT (DEPTNO)"
INDEX ON DEPTNO TO DNOI
? "Inserting data into DEPT"
FOR i := 1 TO LEN( aDeptData )
APPEND BLANK
REPLACE deptno WITH aDeptData[i][1]
REPLACE dname WITH aDeptData[i][2]
REPLACE loc WITH aDeptData[i][3]
? "Record " + alltrim(str(i)) + " inserted successfully"
NEXT i
USE
//ENDIF
* Create EMP table
//IF TabNotEx( "EMP" ) // Desativei pois deu erro Nesta funcao
aDbf := {}
AADD( aDbf, { "EMPNO", "N", 4, 0 } )
AADD( aDbf, { "ENAME", "C", 10, 0 } )
AADD( aDbf, { "JOB", "C", 9, 0 } )
AADD( aDbf, { "HIREDATE", "D", 0, 0 } )
AADD( aDbf, { "SAL", "N", 7, 2 } )
AADD( aDbf, { "DEPTNO", "N", 2, 0 } )
? "Creating EMP table"
DBCREATE( "EMP", aDbf )
USE EMP
? "Creating index on EMP (EMPNO)"
INDEX ON EMPNO TO ENOI
? "Creating index on EMP (DEPTNO)"
INDEX ON DEPTNO TO EDNOI
? "Inserting data into EMP"
FOR i := 1 TO LEN( aEmpData )
APPEND BLANK
REPLACE empno WITH aEmpData[i][1]
REPLACE ename WITH aEmpData[i][2]
REPLACE job WITH aEmpData[i][3]
REPLACE hiredate WITH CTOD( aEmpData[i][4] )
REPLACE sal WITH aEmpData[i][5]
REPLACE DEPTNO WITH aEmpData[i][6]
? "Record " + alltrim(str(i)) + " inserted successfully"
NEXT i
USE
//ENDIF
RETURN
* Function checks for non-existence of cTabName table
/* // Desativei pois deu erro Nesta funcao
FUNCTION TabNotEx(cTabName)
LOCAL cAnsw := ""
IF ( MedIsTable(cTabName) )
WAIT "Table " + cTabName + " already exist. Do you want to overwrite it? (y/n)" TO cAnsw
IF UPPER( cAnsw ) == "Y"
MedDropTab(cTabName)
ELSE
return .F.
ENDIF
ENDIF
RETURN .T.
*/
Basta analisar o BLD.BAT e fazer as alterações para pastas de seu ambiente.
Para transportar os DBFs para MySQL bastará fazer um programinha usando o Harbour/xHarbour.
Quem quizer pode me solicitar o envio do DBF2MYSQL.EXE, uma ferramenta feita com Harbour e VisualLIB, excelente para transportar os dados .DBF para tabelas do MySQL.
E acho que assim ficara mais fácil usar esta ferramenta que é o Mediator em conjunto com o MySQL.