Ayola.net
Новости: В связи с обилием спама, постинг на форуме временно закрыт.

Для связи с поддержкой используйте тикеты в панели управления.
 
*
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь. Октябрь 20, 2018, 07:52:24


Войти


Страниц: 1 [2] 3 4 5
  Печать  
Автор Тема: F.A.Q  (Прочитано 110164 раз)
0 Пользователей и 5 Гостей смотрят эту тему.
Ion
Новичёк
*

Карма: 1
Сообщений: 10


Просмотр профиля
« Ответ #25 : Апрель 17, 2008, 02:53:46 »

Я про то, что в цсв умеет сохранять практически любая БД... и про то, что пхпмуадмин не айоловский...
Mysql никуда не умеет сохранять. Ибо это просто БД.
К ней есть разнообразные дампилки - но они работают только с sql форматом данных.

Но разговор не про практически любую БД, а про конкретный, жутко устаревший файлик формата dbase, с которым phpMyAdmin работать не умеет. Привлекать внешние приложения нужно, но самая распространенная тулсина dbf2mysql весьма криво написана и в связке с 5й версией mysql дает иногда очень интересные траблы с кодировкой. К тому же ей нужен прямой доступ к sql серверу, которого тут нет. Поэтому самый простой вариант - использовать де-факто стандартную офисную прилогу - Excel, который отлично работает с dbase форматом и умеет сохранять в форматах, которые понимают все остальные более-менее современные приложения.

А в сильно сомневающихся в возможностях таких вот интегрированных пакетов - могу кинуть ссылкой на один из игровых фанатских сайтов, где патч для игры был написан в Ворде. Файл, который исправляется - не текстовый, а бинарный. Это уточнение.

ЗЫ. Но все это оффтоп есть, админы наверняка нас посодют.
Записан
graff25
Вникающий
***

Карма: 3
Сообщений: 231


Играю в мизер. Поставьте мне минус.


Просмотр профиля WWW
« Ответ #26 : Апрель 17, 2008, 03:25:07 »

ну дефакто - Ёксель тока в эсэнговщине, потомушо он тут везде кракнутый:)
А про ворд... ну была такая тема "Записки жены программиста"... кажись на экслере (блин, какой я старый:()
так у нас народ, чтоб записать номер телефона открывает ворд, а не блокнот... или чтонить специализированное (например кусок бумажки и карандаш:)))))

ЗЫ: админы, ссори за оффтоп. больше не буду.
Записан

Astraller™
Маэстро
*****

Карма: 151
Сообщений: 1389

Вселенское зло


Просмотр профиля WWW
« Ответ #27 : Апрель 17, 2008, 10:32:23 »

ну дефакто - Ёксель тока в эсэнговщине, потомушо он тут везде кракнутый:)
А давайте не будем всех равнять на себя?
Цитировать
А про ворд... ну была такая тема "Записки жены программиста"... кажись на экслере (блин, какой я старый:()
так у нас народ, чтоб записать номер телефона открывает ворд, а не блокнот... или чтонить специализированное (например кусок бумажки и карандаш:)))))
Насколько я понимаю речь не о том кто что использует из удобства, а о том кто что использует из необходимости.
Записан

Гамлета здесь больше нет. Осталась только тень.
atimur
Просветлённый
****

Карма: 59
Сообщений: 990


Живу в SanCity


Просмотр профиля WWW
« Ответ #28 : Апрель 17, 2008, 14:16:24 »

Код:
*!* dbf_sql.prg
*!* Yes, it works with memo fields.
*!* Creates tablename.sql file from any open and selected table
*!* and fills it with sql create table ... and insert ... commands
*!* for each record. You might want to prepend this commands with
*!* drop table ... command using any txt editor.
*!* Just open table, select it and run this program. You should
*!* find (tablename).sql file in prg directory.
*!*
*!* I am using phpMyAdmin. Entering location of (tablename).sql into
*!* 'Location of the textfile' and executing it, I can update
*!* MySQL database users table on local or remote server.
*!* You can also use "mysql ... < (tablename).sql" command from
*!* command line.
*!*
*!* When working on SQL table notice that on Unix case matters.
*!* Table and fields names are uppercase.
*!* There are some restrictions
*!* - Only C,N,D,M and L types of fields are supported
*!* - There also can be some problems with escaping characters in your data.
*!*
*!* Program is written in MS Visual FoxPro 6.0 and works fine
*!* for me. It should also work fine for any older dbf file version
*!* foxpro 6.0 can read.
*!*
*!* If you have problems DON'T PANIC.
*!* See www.j-sistem.hr/online/dev/index.htm - maybe there is
*!* improved version
*!* Improve code and send it back to me, and I shall make it
*!* available for download
*!*   Complain to me. Maybe I have been there.
*!*     Danko Josic
*!*     dj@j.sistem.hr
*!*     www.j.sistem.hr
*!*
*!* You are free to use this code and modify it in any way you
*!* see fit.
*!*
*!* Legal:
*!* I can not be held responsible for any damage to your data or
*!* peace of mind or anything else that can come out as result of
*!* using this code.
*!*
*!*
*!* If you improve this code please send it back to me and I shall
*!* publish it on www.j-sistem.hr/online/dev/index.htm.
*!*
*** Модификация - Зеленяк И.П.
*** Версия 1, 31.05.2006.
*** Версия 2, 07.06.2006 - 08.06.2006: добавлено формирование
*** индексных выражений.
*** Версия 3, 11.08.2006 - 14.08.2006 (З
*!***********************************************************************
* clear
set talk off
close databases
* set date to german
set date to british && 31.05.2006

dimension idx_expr(254)
public a_content_idx(254),a_name_idx(254), n_click

define window w_term from 12,3 to 23,73 double

**********************************************************************************************
store SQLCONNECT('bdsql') to connect1

do case
*case connect1>0
*=MessageBox("Соединение установлено",64+0+0,"Информация")
*case connect1=-1
*=MessageBox("Ошибка соединения ",16+0+0,'Предупреждение')
case connect1=-2
=MessageBox("соединение установить не удалось",16+0+0,'Предупреждение')
endcase
**********************************************************************************************
= SQLSETPROP(connect1, 'BatchMode', .t.)
= SQLEXEC(connect1, 'SET NAMES cp1251', 'result')


do while .t.
**** Инициализация переменных
flag_error=.f.
flag_continue=.f.
name_inp=''
**content_idx=''
n_r=0
n_click=0
**name_idx=''
**** Выбор таблицы
do form (path_work+'\prg\sel_file.scx')
if (flag_continue=.f.).or.(empty(name_inp))
exit
endif
if lower(right(name_inp,3))#'dbf'
yes_no=MessageBox('Можно выбирать только таблицы dbf. Повторить?',4+16+0,'Ошибка')
flag_error=.t.
if yes_no=7 && нет
exit
endif
endif
***** Обработка, если нет ошибки
if flag_error=.f.
activate window w_term
@ 0,1 say 'Экспорт данных начат в '+TIME()+'' font 'Courier New Cyr',10
 @4,1 to 6,67 pattern 1 color gr+/gr* 
name_table=''
ch=''
i=atc('.',name_inp)-1
do while 1=1
ch=substr(name_inp,i,1)
if ch='\'
exit
endif
name_table=ch+name_table
i=i-1
enddo && 1=1


use (name_inp) alias (name_table) shared
set compatible on
if fsize(name_inp)>8000000 && размер в байтах
name_tmp=name_table+'s.dbf'
delete file (name_tmp)
copy to (name_tmp) for recno()<10
close databases
use (name_tmp) alias (name_table) shared
endif
m.dbftable_stem='dbf_'+lower(alias())


**** Строка ниже была в оригинале
** m.dbftable_stem = lower(alias())

*m.lnFHandle = FCREATE(path_work+'\file_sql\'+m.dbftable_stem+'.sql')

* command 'create table' with 'IF NOT EXISTS' option
* m.SQLCOMMAND = 'CREATE TABLE IF NOT EXISTS '+ m.dbftable_stem+' ('+fld_setup()+');'
* or without
m.SQLCOMMAND = 'CREATE TABLE '+ m.dbftable_stem+' ('+fld_setup()+');'
* Verbose? Uncomment next line.
* ? m.SQLCOMMAND
*=FWRITE( m.lnFHandle, m.SQLCOMMAND+CHR(13))
ttt= SQLEXEC(connect1, m.SQLCOMMAND+CHR(13))

do case
case ttt=0
=MessageBox("Запрос ещё выполняется",64+0+0,"Информация")
case ttt=-1
=MessageBox("Ошибка выполнения запроса",16+0+0,'Предупреждение')
case ttt=1
=MessageBox("Запрос выполнен ",64+0+0,'Информация')
endcase

if fsize(name_inp)>8000000 && размер в байтах
close databases
use (name_inp) alias (name_table) shared
endif
set compatible off

m.nrec = reccount()
n_tot=m.nrec
perc2=2*ceiling(n_tot/100)
scan
* Uncomment if you would like to have field names in insert command
* m.SQLCOMMAND = "insert into "+m.dbftable_stem+"("+fld_names()+") "+"values ("+fld_content()+")"
* I am using without field names for mysql and it works fine
m.SQLCOMMAND = "insert into "+m.dbftable_stem+" values ("+fld_content()+");"
* Verbose? Uncomment next line.
* ? m.SQLCOMMAND
*=FWRITE( m.lnFHandle, m.SQLCOMMAND+CHR(13))
= SQLEXEC(connect1, m.SQLCOMMAND+CHR(13))
* count records backwards
* ? m.nrec
m.nrec = m.nrec - 1
if mod(m.nrec,perc2)=0
do term
endif
endscan
***** Индексы
numb_idx=0 && число индексов
for i=1 to 254
idx_expr(i)=sys(14,i,alias()) && индексные выражения в FoxPro
if .not. (empty(idx_expr(i)))
numb_idx=numb_idx+1
endif
endfor
if numb_idx#0
for i=1 to numb_idx
name_idx="`"+'idx'+alltrim(str(i,3))+"`" && имя индекса в MySQL
n_plus=occurs("+",idx_expr(i)) && число знаков "+"
if n_plus=0 && нет знаков "+"
content_idx="`"+idx_expr(i)+"`" && индексное выражение в MySQL
else && индекс по нескольким полям
dimension temp_expr(n_plus+1)
k=1
temp_expr(1)=left(idx_expr(i),atc("+",idx_expr(i),1)-1)
for k=2 to n_plus+1
if k=n_plus+1
temp_expr(k)=substr(idx_expr(i),atc("+",idx_expr(i),n_plus)+1)
else
temp_expr(k)=substr(idx_expr(i),atc("+",idx_expr(i),k-1)+1,;
atc("+",idx_expr(i),k)-1-atc("+",idx_expr(i),k-1))
endif
endfor
for j=1 to n_plus+1
do case
case left(temp_expr(j),1)="("
temp_expr(j)=substr(temp_expr(j),2)
case upper(left(temp_expr(j),4))=upper("str(")
temp_expr(j)=substr(temp_expr(j),5,atc(",",temp_expr(j))-5)
case upper(left(temp_expr(j),4))#"STR(".and.right(temp_expr(j),1)=")"
temp_expr(j)=substr(temp_expr(j),1,len(alltrim(temp_expr(j)))-1)
endcase
if j=1
content_idx="`"+temp_expr(j)+"`"
else
content_idx=content_idx+","+"`"+temp_expr(j)+"`"
endif
endfor && j=1 to n_plus+1
endif && n_plus=0
m.SQLCOMMAND = "alter table "+m.dbftable_stem+" add index "+name_idx+"("+content_idx+");"
*=FWRITE( m.lnFHandle, m.SQLCOMMAND+CHR(13))
= SQLEXEC(connect1, m.SQLCOMMAND+CHR(13))
endfor && numb_idx - число индексов
else
yes_no=MessageBox("У выбранной таблицы нет индексов. Создать их?",4+32+0,"Внимание")
if yes_no=6
delete file (path_work+'\tables\temp_1.dbf')
select (name_table)
copy structure extended to (path_work+'\tables\temp_1')
select b
use (path_work+'\tables\lst_fld') alias lst_fld exclusive
set safety off
zap
set safety on
append from (path_work+'\tables\temp_1')
do form (path_work+'\prg\lst_fld.scx')
for j=1 to n_click
if .not. empty (a_content_idx(j))
m.SQLCOMMAND = "alter table "+m.dbftable_stem+" add index "+a_name_idx(j)+"("+a_content_idx(j)+");"
*=FWRITE( m.lnFHandle, m.SQLCOMMAND+CHR(13))
= SQLEXEC(connect1, m.SQLCOMMAND+CHR(13))
endif
next
endif  && if yes_no...
endif && numb_idx#0

*****
*=FCLOSE( m.lnFHandle) 
* modi comm (m.dbftable_stem+'.sql')

do term_end
do while 2=2
@ 6,1 say 'Экспорт данных выполнен в '+TIME()+'';
font 'Courier New Cyr',10
@ 8,1 say 'Для пpодолжения pаботы нажмите Enter' ;
font 'Courier New Cyr',10
read
if readkey()=15.or.readkey()=271
exit
endif
enddo &&2=2
deactivate window w_term
close databases
endif && flag_error=f
enddo &&.t.
**** Закрыть соединение
= SQLDISCONNECT(connect1)
release window w_term
release a_content_idx,a_name_idx,n_click
return

*----------------------------------------------------------------------------
* Reads record data, modifying "'" to "`" and ',' to '.' in numeric fields
* This function is a good place to escape characters, add some field definitions etc...
*----------------------------------------------------------------------------
function fld_content
private lcret, nn, lnFieldcount, ladbf
dimension ladbf(1)
m.lnFieldcount = AFIELDS(ladbf)  && Create array
m.maxflds = m.lnFieldcount
m.lcret = ''
FOR m.nn = 1 TO m.maxflds
m.fld = eval(ladbf(m.nn,1))
    do case
case ladbf(m.nn,2)='C'
m.c = "'"+chrtran(alltrim(m.fld),"'","`")+"'"
case ladbf(m.nn,2)='N'
m.c = chrtran(padr(m.fld,ladbf(m.nn,3)),',','.')
case ladbf(m.nn,2)='D'
m.c = '"'+dtos(m.fld)+'"'
case ladbf(m.nn,2)='M'
m.c = "'"+chrtran(alltrim(m.fld),"'","`")+"'"
case ladbf(m.nn,2)='L'
m.c = iif( m.fld,'1','0')
otherwise:    
m.c = '***' && we have problem
    endcase
m.lcret = m.lcret + m.c
    if m.nn < m.maxflds
    m.lcret = m.lcret + ','
    endif
next
return alltrim(m.lcret)

*----------------------------------------------------------------------------
* Returns field names of selected table
*----------------------------------------------------------------------------
function fld_names
private lcret, nn, lnFieldcount, ladbf
dimension ladbf(1)
m.lnFieldcount = AFIELDS(ladbf)  && Create array
m.maxflds = m.lnFieldcount
m.lcret = ''
FOR m.nn = 1 TO m.maxflds
m.lcret = m.lcret+ladbf(m.nn,1)
    if m.nn < m.maxflds
    m.lcret = m.lcret + ','
    endif
next
return m.lcret

*----------------------------------------------------------------------------
function fld_setup
private lcret, nn, lnFieldcount, ladbf
dimension ladbf(1)
m.lnFieldcount = AFIELDS(ladbf)  && Create array
m.maxflds = m.lnFieldcount
m.lcret = ''
FOR m.nn = 1 TO m.maxflds
* Verbose? Uncomment next line.
*     ? padr(ladbf(m.nn,1),20),ladbf(m.nn,2),ladbf(m.nn,3),ladbf(m.nn,4)
    m.lcret = m.lcret+ladbf(m.nn,1)+' '
    do case
case ladbf(m.nn,2)='C'
m.lcret = m.lcret +'char'+'('+padr(ladbf(m.nn,3),3)+')'
case ladbf(m.nn,2)='N'
if empty(ladbf(m.nn,4))
m.lcret = m.lcret +'int'+'('+padr(ladbf(m.nn,3),3)+')'
else
m.lcret = m.lcret +'float'+'('+padr(ladbf(m.nn,3),3)+','+padr(ladbf(m.nn,4),2)+')'
endif
case ladbf(m.nn,2)='D'
m.lcret = m.lcret +'date'
case ladbf(m.nn,2)='M'
m.lcret = m.lcret +'text'
case ladbf(m.nn,2)='L'
m.lcret = m.lcret +'char (1)'
otherwise:    
m.lcret = m.lcret +'***' && Field type not recognized - we have problem
    endcase
    if m.nn < m.maxflds
    m.lcret = m.lcret + ','
    endif
next
return m.lcret
*****
procedure term
n_r=n_r+1
@ 4,n_r to 6,n_r+1 pattern 1 color b+/b*
return
*****
procedure term_end
@2,1 clear to 3,67
do while n_r<67
n_r=n_r+1
@ 4,n_r to 6,n_r+1 pattern 1 color b+/b*
enddo
return
Записан

- Правда, она всегда глаза режет...
- Капча - Идите лесом...
atimur
Просветлённый
****

Карма: 59
Сообщений: 990


Живу в SanCity


Просмотр профиля WWW
« Ответ #29 : Апрель 17, 2008, 14:16:50 »

Код:
*!* dbf2sql.prg
*!* Yes, it works with memo fields.
*!* Creates tablename.sql file from any open and selected table
*!* and fills it with sql create table ... and insert ... commands
*!* for each record. You might want to prepend this commands with
*!* drop table ... command using any txt editor.
*!* Just open table, select it and run this program. You should
*!* find (tablename).sql file in prg directory.
*!*
*!* I am using phpMyAdmin. Entering location of (tablename).sql into
*!* 'Location of the textfile' and executing it, I can update
*!* MySQL database users table on local or remote server.
*!* You can also use "mysql ... < (tablename).sql" command from
*!* command line.
*!*
*!* When working on SQL table notice that on Unix case matters.
*!* Table and fields names are uppercase.
*!* There are some restrictions
*!* - Only C,N,D,M and L types of fields are supported
*!* - There also can be some problems with escaping characters in your data.
*!*
*!* Program is written in MS Visual FoxPro 6.0 and works fine
*!* for me. It should also work fine for any older dbf file version
*!* foxpro 6.0 can read.
*!*
*!* If you have problems DON'T PANIC.
*!* See www.j-sistem.hr/online/dev/index.htm - maybe there is
*!* improved version
*!* Improve code and send it back to me, and I shall make it
*!* available for download
*!*   Complain to me. Maybe I have been there.
*!*     Danko Josic
*!*     dj@j.sistem.hr
*!*     www.j.sistem.hr
*!*
*!* You are free to use this code and modify it in any way you
*!* see fit.
*!*
*!* Legal:
*!* I can not be held responsible for any damage to your data or
*!* peace of mind or anything else that can come out as result of
*!* using this code.
*!*
*!*
*!* If you improve this code please send it back to me and I shall
*!* publish it on www.j-sistem.hr/online/dev/index.htm.
*!*
*** Модификация - Зеленяк И.П.
*** Версия 1, 31.05.2006.
*** Версия 2, 07.06.2006 - 08.06.2006: добавлено формирование
*** индексных выражений.
*!***********************************************************************
* clear
set talk off
close databases
* set date to german
set date to british && 31.05.2006

dimension idx_expr(254)
public a_content_idx(254),a_name_idx(254), n_click

define window w_term from 12,3 to 23,73 double

do while .t.
**** Инициализация переменных
flag_error=.f.
flag_continue=.f.
name_inp=''
**content_idx=''
n_r=0
n_click=0
**name_idx=''
**** Выбор таблицы
do form (path_work+'\prg\sel_file.scx')
if (flag_continue=.f.).or.(empty(name_inp))
exit
endif
if lower(right(name_inp,3))#'dbf'
yes_no=MessageBox('Можно выбирать только таблицы dbf. Повторить?',4+16+0,'Ошибка')
flag_error=.t.
if yes_no=7 && нет
exit
endif
endif
***** Обработка, если нет ошибки
if flag_error=.f.
activate window w_term
@ 0,1 say 'Фоpмиpование данных начато в '+TIME()+'' font 'Courier New Cyr',10
 @4,1 to 6,67 pattern 1 color gr+/gr* 
name_table=''
ch=''
i=atc('.',name_inp)-1
do while 1=1
ch=substr(name_inp,i,1)
if ch='\'
exit
endif
name_table=ch+name_table
i=i-1
enddo && 1=1

use (name_inp) alias (name_table) shared
m.dbftable_stem='dbf_'+lower(alias())


**** Строка ниже была в оригинале
** m.dbftable_stem = lower(alias())

m.lnFHandle = FCREATE(path_work+'\file_sql\'+m.dbftable_stem+'.sql')

* command 'create table' with 'IF NOT EXISTS' option
* m.SQLCOMMAND = 'CREATE TABLE IF NOT EXISTS '+ m.dbftable_stem+' ('+fld_setup()+');'
* or without
m.SQLCOMMAND = 'CREATE TABLE '+ m.dbftable_stem+' ('+fld_setup()+');'
* Verbose? Uncomment next line.
* ? m.SQLCOMMAND
=FWRITE( m.lnFHandle, m.SQLCOMMAND+CHR(13))
m.nrec = reccount()
n_tot=m.nrec
perc2=2*ceiling(n_tot/100)
scan
* Uncomment if you would like to have field names in insert command
* m.SQLCOMMAND = "insert into "+m.dbftable_stem+"("+fld_names()+") "+"values ("+fld_content()+")"
* I am using without field names for mysql and it works fine
m.SQLCOMMAND = "insert into "+m.dbftable_stem+" values ("+fld_content()+");"
* Verbose? Uncomment next line.
* ? m.SQLCOMMAND
=FWRITE( m.lnFHandle, m.SQLCOMMAND+CHR(13))
* count records backwards
* ? m.nrec
m.nrec = m.nrec - 1
if mod(m.nrec,perc2)=0
do term
endif
endscan
***** Индексы
numb_idx=0 && число индексов
for i=1 to 254
idx_expr(i)=sys(14,i,alias()) && индексные выражения в FoxPro
if .not. (empty(idx_expr(i)))
numb_idx=numb_idx+1
endif
endfor
if numb_idx#0
for i=1 to numb_idx
name_idx="`"+'idx'+alltrim(str(i,3))+"`" && имя индекса в MySQL
n_plus=occurs("+",idx_expr(i)) && число знаков "+"
if n_plus=0 && нет знаков "+"
content_idx="`"+idx_expr(i)+"`" && индексное выражение в MySQL
else && индекс по нескольким полям
dimension temp_expr(n_plus+1)
k=1
temp_expr(1)=left(idx_expr(i),atc("+",idx_expr(i),1)-1)
for k=2 to n_plus+1
if k=n_plus+1
temp_expr(k)=substr(idx_expr(i),atc("+",idx_expr(i),n_plus)+1)
else
temp_expr(k)=substr(idx_expr(i),atc("+",idx_expr(i),k-1)+1,;
atc("+",idx_expr(i),k)-1-atc("+",idx_expr(i),k-1))
endif
endfor
for j=1 to n_plus+1
do case
case left(temp_expr(j),1)="("
temp_expr(j)=substr(temp_expr(j),2)
case upper(left(temp_expr(j),4))=upper("str(")
temp_expr(j)=substr(temp_expr(j),5,atc(",",temp_expr(j))-5)
case upper(left(temp_expr(j),4))#"STR(".and.right(temp_expr(j),1)=")"
temp_expr(j)=substr(temp_expr(j),1,len(alltrim(temp_expr(j)))-1)
endcase
if j=1
content_idx="`"+temp_expr(j)+"`"
else
content_idx=content_idx+","+"`"+temp_expr(j)+"`"
endif
endfor && j=1 to n_plus+1
endif && n_plus=0
m.SQLCOMMAND = "alter table "+m.dbftable_stem+" add index "+name_idx+"("+content_idx+");"
=FWRITE( m.lnFHandle, m.SQLCOMMAND+CHR(13))
endfor && numb_idx - число индексов
else
yes_no=MessageBox("У выбранной таблицы нет индексов. Создать их?",4+32+0,"Внимание")
if yes_no=6
delete file (path_work+'\tables\temp_1.dbf')
select (name_table)
copy structure extended to (path_work+'\tables\temp_1')
select b
use (path_work+'\tables\lst_fld') alias lst_fld exclusive
set safety off
zap
set safety on
append from (path_work+'\tables\temp_1')
do form (path_work+'\prg\lst_fld.scx')
for j=1 to n_click
if .not. empty (a_content_idx(j))
m.SQLCOMMAND = "alter table "+m.dbftable_stem+" add index "+a_name_idx(j)+"("+a_content_idx(j)+");"
=FWRITE( m.lnFHandle, m.SQLCOMMAND+CHR(13))
endif
next
endif  && if yes_no...
endif && numb_idx#0

*****
=FCLOSE( m.lnFHandle) 
* modi comm (m.dbftable_stem+'.sql')

do term_end
do while 2=2
@ 6,1 say 'Фоpмиpование данных выполнено в '+TIME()+'';
font 'Courier New Cyr',10
@ 8,1 say 'Для пpодолжения pаботы нажмите Enter' ;
font 'Courier New Cyr',10
read
if readkey()=15.or.readkey()=271
exit
endif
enddo &&2=2
deactivate window w_term
close databases
endif && flag_error=f
enddo &&.t.
release window w_term
release a_content_idx,a_name_idx,n_click
return

*----------------------------------------------------------------------------
* Reads record data, modifying "'" to "`" and ',' to '.' in numeric fields
* This function is a good place to escape characters, add some field definitions etc...
*----------------------------------------------------------------------------
function fld_content
private lcret, nn, lnFieldcount, ladbf
dimension ladbf(1)
m.lnFieldcount = AFIELDS(ladbf)  && Create array
m.maxflds = m.lnFieldcount
m.lcret = ''
FOR m.nn = 1 TO m.maxflds
m.fld = eval(ladbf(m.nn,1))
    do case
case ladbf(m.nn,2)='C'
m.c = "'"+chrtran(alltrim(m.fld),"'","`")+"'"
case ladbf(m.nn,2)='N'
m.c = chrtran(padr(m.fld,ladbf(m.nn,3)),',','.')
case ladbf(m.nn,2)='D'
m.c = '"'+dtos(m.fld)+'"'
case ladbf(m.nn,2)='M'
m.c = "'"+chrtran(alltrim(m.fld),"'","`")+"'"
case ladbf(m.nn,2)='L'
m.c = iif( m.fld,'1','0')
otherwise:    
m.c = '***' && we have problem
    endcase
m.lcret = m.lcret + m.c
    if m.nn < m.maxflds
    m.lcret = m.lcret + ','
    endif
next
return alltrim(m.lcret)

*----------------------------------------------------------------------------
* Returns field names of selected table
*----------------------------------------------------------------------------
function fld_names
private lcret, nn, lnFieldcount, ladbf
dimension ladbf(1)
m.lnFieldcount = AFIELDS(ladbf)  && Create array
m.maxflds = m.lnFieldcount
m.lcret = ''
FOR m.nn = 1 TO m.maxflds
m.lcret = m.lcret+ladbf(m.nn,1)
    if m.nn < m.maxflds
    m.lcret = m.lcret + ','
    endif
next
return m.lcret

*----------------------------------------------------------------------------
function fld_setup
private lcret, nn, lnFieldcount, ladbf
dimension ladbf(1)
m.lnFieldcount = AFIELDS(ladbf)  && Create array
m.maxflds = m.lnFieldcount
m.lcret = ''
FOR m.nn = 1 TO m.maxflds
* Verbose? Uncomment next line.
*     ? padr(ladbf(m.nn,1),20),ladbf(m.nn,2),ladbf(m.nn,3),ladbf(m.nn,4)
    m.lcret = m.lcret+ladbf(m.nn,1)+' '
    do case
case ladbf(m.nn,2)='C'
m.lcret = m.lcret +'char'+'('+padr(ladbf(m.nn,3),3)+')'
case ladbf(m.nn,2)='N'
if empty(ladbf(m.nn,4))
m.lcret = m.lcret +'int'+'('+padr(ladbf(m.nn,3),3)+')'
else
m.lcret = m.lcret +'float'+'('+padr(ladbf(m.nn,3),3)+','+padr(ladbf(m.nn,4),2)+')'
endif
case ladbf(m.nn,2)='D'
m.lcret = m.lcret +'date'
case ladbf(m.nn,2)='M'
m.lcret = m.lcret +'text'
case ladbf(m.nn,2)='L'
m.lcret = m.lcret +'char (1)'
otherwise:    
m.lcret = m.lcret +'***' && Field type not recognized - we have problem
    endcase
    if m.nn < m.maxflds
    m.lcret = m.lcret + ','
    endif
next
return m.lcret
*****
procedure term
n_r=n_r+1
@ 4,n_r to 6,n_r+1 pattern 1 color b+/b*
return
*****
procedure term_end
@2,1 clear to 3,67
do while n_r<67
n_r=n_r+1
@ 4,n_r to 6,n_r+1 pattern 1 color b+/b*
enddo
return
Записан

- Правда, она всегда глаза режет...
- Капча - Идите лесом...
Koshey
Новичёк
*

Карма: 0
Сообщений: 17


Im here


Просмотр профиля
« Ответ #30 : Апрель 18, 2008, 11:37:13 »

Что "это" было ? Можно описание?  Улыбающийся
Записан

^_^ got beer?
atimur
Просветлённый
****

Карма: 59
Сообщений: 990


Живу в SanCity


Просмотр профиля WWW
« Ответ #31 : Апрель 18, 2008, 12:08:34 »

http://www.ayola.net/forum/index.php/topic,3352.msg27729.html#msg27729
Это программа на Визуальном фокспро подключается к SQL серверу и таблицу заносит в БД
http://www.ayola.net/forum/index.php/topic,3352.msg27730.html#msg27730
Это программа на Визуальном фокспро создает файл SQL формата и заносит таблицу

вообще в скриптах вверху есть описание учите английский !
Записан

- Правда, она всегда глаза режет...
- Капча - Идите лесом...
andrey3761
Новичёк
*

Карма: 0
Сообщений: 22


Просмотр профиля
« Ответ #32 : Апрель 18, 2008, 15:34:25 »

Сори за вопрос. Как создовать топики на форуме?
Записан
DLE user
Маэстро
*****

Карма: 78
Сообщений: 1692



Просмотр профиля WWW
« Ответ #33 : Апрель 18, 2008, 15:39:10 »

Сори за вопрос. Как создовать топики на форуме?
Смотря какой форум..
Записан
atimur
Просветлённый
****

Карма: 59
Сообщений: 990


Живу в SanCity


Просмотр профиля WWW
« Ответ #34 : Апрель 18, 2008, 15:42:41 »

Сори за вопрос. Как создовать топики на форуме?
Зайти в нужный раздел форума и нажать кнопку "    Новая тема ".
Записан

- Правда, она всегда глаза режет...
- Капча - Идите лесом...
DLE user
Маэстро
*****

Карма: 78
Сообщений: 1692



Просмотр профиля WWW
« Ответ #35 : Апрель 18, 2008, 15:44:19 »

Сори за вопрос. Как создовать топики на форуме?
Зайти в нужный раздел форума и нажать кнопку "    Новая тема ".
Видемо он имел разделы..Во всяком случаи я подумсал так.
Записан
andrey3761
Новичёк
*

Карма: 0
Сообщений: 22


Просмотр профиля
« Ответ #36 : Апрель 18, 2008, 15:45:06 »

Сори за вопрос. Как создовать топики на форуме?
Смотря какой форум..

Ну насколько я знаю форум тут один: http://www.ayola.net/forum/
А раздел я хочу "технические вопроссы"

А причём тут раздел? Или у вас есть ранги, ниже которого нельзя отвечать в данном разделе?
И где можно прочитать эти правила?
Записан
DLE user
Маэстро
*****

Карма: 78
Сообщений: 1692



Просмотр профиля WWW
« Ответ #37 : Апрель 18, 2008, 15:46:25 »

Сори за вопрос. Как создовать топики на форуме?
Смотря какой форум..

Ну насколько я знаю форум тут один: http://www.ayola.net/forum/
А раздел я хочу "технические вопроссы"

А причём тут раздел? Или у вас есть ранги, ниже которого нельзя отвечать в данном разделе?
И где можно прочитать эти правила?
А я не так понял. Извеняюсь. Тех вопросы закрыты. Для этого етсь тикеты. Разве вам было мыло этого: http://ayola.net/forum.html
Записан
DLE user
Маэстро
*****

Карма: 78
Сообщений: 1692



Просмотр профиля WWW
« Ответ #38 : Апрель 18, 2008, 15:51:45 »

PS тикеты: http://ayola.net/panel/tickets.php
Записан
andrey3761
Новичёк
*

Карма: 0
Сообщений: 22


Просмотр профиля
« Ответ #39 : Апрель 18, 2008, 16:09:21 »


Тикеты это хорошо, но лучше когда тема выноситься на форум, чтобы у других небыло вопроссов. А то будут их задовать по сто раз...
Записан
Astraller™
Маэстро
*****

Карма: 151
Сообщений: 1389

Вселенское зло


Просмотр профиля WWW
« Ответ #40 : Апрель 18, 2008, 16:10:56 »

Тикеты это хорошо, но лучше когда тема выноситься на форум, чтобы у других небыло вопроссов. А то будут их задовать по сто раз...
Не хотелось бы вас разочаровывать, но в независимости от того, есть оно на форуме или нет, вопросы одни и те же звучат постоянно.
Записан

Гамлета здесь больше нет. Осталась только тень.
DLE user
Маэстро
*****

Карма: 78
Сообщений: 1692



Просмотр профиля WWW
« Ответ #41 : Апрель 18, 2008, 16:12:14 »

Тикеты это хорошо, но лучше когда тема выноситься на форум, чтобы у других небыло вопроссов. А то будут их задовать по сто раз...
Не хотелось бы вас разочаровывать, но в независимости от того, есть оно на форуме или нет, вопросы одни и те же звучат постоянно.
и для этого мы написали FAQ.. Улыбающийся
Записан
andrey3761
Новичёк
*

Карма: 0
Сообщений: 22


Просмотр профиля
« Ответ #42 : Апрель 18, 2008, 16:15:18 »

Тикеты это хорошо, но лучше когда тема выноситься на форум, чтобы у других небыло вопроссов. А то будут их задовать по сто раз...
Не хотелось бы вас разочаровывать, но в независимости от того, есть оно на форуме или нет, вопросы одни и те же звучат постоянно.

Ну тогда почаще обновляйте факи. Я например сначала прочитал фак, своего вопросса ненашол, вот и создал тему.
Записан
andrey3761
Новичёк
*

Карма: 0
Сообщений: 22


Просмотр профиля
« Ответ #43 : Апрель 18, 2008, 16:18:38 »

и для этого мы написали FAQ.. Улыбающийся

Понимаю, сам модератор на одном форуме Улыбающийся .
Записан
Astraller™
Маэстро
*****

Карма: 151
Сообщений: 1389

Вселенское зло


Просмотр профиля WWW
« Ответ #44 : Апрель 18, 2008, 16:19:48 »

Ну тогда почаще обновляйте факи. Я например сначала прочитал фак, своего вопросса ненашол, вот и создал тему.
Написанный нами фак - в начале темы. Если у вас есть вопрос на который там нет ответа - я хочу его услышать.
Записан

Гамлета здесь больше нет. Осталась только тень.
Astraller™
Маэстро
*****

Карма: 151
Сообщений: 1389

Вселенское зло


Просмотр профиля WWW
« Ответ #45 : Апрель 18, 2008, 16:20:19 »

Понимаю, сам модератор на одном форуме Улыбающийся .
Дело только в том что мы - не модераторы. Просто активные пользователи.
Записан

Гамлета здесь больше нет. Осталась только тень.
DLE user
Маэстро
*****

Карма: 78
Сообщений: 1692



Просмотр профиля WWW
« Ответ #46 : Апрель 18, 2008, 16:22:24 »

Ну тогда почаще обновляйте факи. Я например сначала прочитал фак, своего вопросса ненашол, вот и создал тему.
Написанный нами фак - в начале темы. Если у вас есть вопрос на который там нет ответа - я хочу его услышать.
+1 и я тоже хочю услушать
Записан
andrey3761
Новичёк
*

Карма: 0
Сообщений: 22


Просмотр профиля
« Ответ #47 : Апрель 18, 2008, 16:25:06 »

Ну тогда почаще обновляйте факи. Я например сначала прочитал фак, своего вопросса ненашол, вот и создал тему.
Написанный нами фак - в начале темы. Если у вас есть вопрос на который там нет ответа - я хочу его услышать.

http://www.ayola.net/forum/index.php/topic,3371.msg27856.html#msg27856

1) Можно тупо перенести файлы с одного FTP'шника на этот? Или нужно заново инсталить движок?
2) Как перенести базу данных? - это есть в факе, но чтото ошибку выдаёт.
Записан
DLE user
Маэстро
*****

Карма: 78
Сообщений: 1692



Просмотр профиля WWW
« Ответ #48 : Апрель 18, 2008, 16:38:19 »

Ну тогда почаще обновляйте факи. Я например сначала прочитал фак, своего вопросса ненашол, вот и создал тему.
Написанный нами фак - в начале темы. Если у вас есть вопрос на который там нет ответа - я хочу его услышать.

http://www.ayola.net/forum/index.php/topic,3371.msg27856.html#msg27856

1) Можно тупо перенести файлы с одного FTP'шника на этот? Или нужно заново инсталить движок?
2) Как перенести базу данных? - это есть в факе, но чтото ошибку выдаёт.
Перенесите файлы на этот фтп, перенесите БД и отредактируйте config.php (или подобный) согласно параметрам вашего акк.
PS в FAQ это всё есть.
Записан
Astraller™
Маэстро
*****

Карма: 151
Сообщений: 1389

Вселенское зло


Просмотр профиля WWW
« Ответ #49 : Апрель 18, 2008, 16:45:29 »

1) Можно тупо перенести файлы с одного FTP'шника на этот? Или нужно заново инсталить движок?
Q: Как мне перенести с Denwer’а (или другой сборки например xampp) сайт на движке […]?
A: Вам необходимо закачать файлы по FTP, перенести БД и исправить конфигурационные файлы.
Цитировать
2) Как перенести базу данных? - это есть в факе, но чтото ошибку выдаёт.
Q: Как мне перенести БД с Denwer (или другого хостинга)?
A: Зайдите в phpMyAdmin (в Denwer http://localhost/Tools/phpmyadmin/) выберите вашу БД, нажмите кнопку «Экспорт» выберите все таблицы, поставьте галочку «послать», нажмите «Пошел». После этого зайдите на http://sql-2.ayola.net/ введите данные для входа в БД (пришли вам в письме при регистрации), нажмите кнопку «Импорт», выберите ваш файл, выберите кодировку (для Denwer – cp1251).

PS Просто чуть больше внимательности при чтении.
Записан

Гамлета здесь больше нет. Осталась только тень.
Страниц: 1 [2] 3 4 5
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.13 | SMF © 2006, Simple Machines LLC

2003-2008 © ООО "Инфотур" - Бесплатный хостинг Ayola.net
Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM
Страница сгенерирована за 0.135 секунд. Запросов: 17.