powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
25 сообщений из 62, страница 2 из 3
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
    #37092223
Фотография Redrik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Питон33Дело в том что 500 000 записей по одной команде загонять в MySQL - длится сутки даже по localhost.
Полный абзац! Меняйте "консерваторию"! Или там живёт ЧТО-ТО, о чём Вы не знаете!
2.5 млн. инсертов (просто инсерт и ничего больше) - 9-10 минут... не localhost, конечно!
...
Рейтинг: 0 / 0
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
    #37092265
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Питон33Поверьте это так. 500 000 записей, по одной записи обновляются в цикле командой MySQL UPDATE по уникальному ключу.
Процесс длится сутки.
Есть подозрение что ключ условно ключем называется, а реально просто поле и индекса по нему нет. Проверь что есть индекс по этому полю.

UPDATE это не вставка, а обновление данных. Гораздо быстрее выполнится один UPDATE полмиллиона записей, чем полмиллиона по одному.
Поэтому лучше сначала создать временную таблицу на сервере, вставить туда данные, а потом UPDATE делать из нее.

Чтобы сократить время на передачу данных серверу можно передавать по несколько команд серверу за одно обращение, как выше Владимир писал:
Код: plaintext
1.
2.
3.
strCommand = "INSERT INTO tabMySQL (Field1, Field1, Field3) values (1,1,1) " + ;
	"INSERT INTO tabMySQL (Field1, Field1, Field3) values (2,2,2) " + ;
	"INSERT INTO tabMySQL (Field1, Field1, Field3) values (3,3,3) "
=SQLExec("номер соединения", strCommand)

За раз полмиллиона инсертов не уйдет, т.к. у SQLExec есть ограничение на размер передаваемых данных.

Питон33SQLPREPARE() просто подготавливает для выполнения, а выполнение будет в самом конце по команде SQLEXEC().
Сомневаюсь что это поможет. Как я понимаю SQLPREPARE() подготавливает только план выполнения запроса.
Способы быстрой вставки зависят от типа SQL-сервера, поэтому лучше в форуме по MySQL-ю спросить.

PS Фокс заточен под MSSQL, с остальными SQL-серверами часто бывают проблемы на ровном месте из-за неполной совместимости с ODBC драйвером, поэтому советую попробовать несколько разных драйверов.
...
Рейтинг: 0 / 0
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
    #37092300
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Питон33tanglir,

Пример можно?
load data нету такой команды в фоксе.Разумеется нет. Это же не в фокс надо грузить. Это на сервере надо смотреть. Вам уже намекали про участие обоих сторон в процессе. Не в одном фоксе дело, надо чтоб и сервер умел "одной командой" грузить большое количество данных. Load data как раз серверная команда из этой серии. На MySQL она есть? Или что-то подобное? Наверняка что-то должно быть. Ну так и надо сначала узнать необходимые для использования этой возможности условия и посмотреть возможность выполнения этих условий с помощью фокса. Все остальные варианты являются маскировкой многочисленных insert.
...
Рейтинг: 0 / 0
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
    #37092321
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
с курсорадаптером сами пример найдете?
или рисовать?
...
Рейтинг: 0 / 0
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
    #37092367
Питон33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
RedrikПитон33Дело в том что 500 000 записей по одной команде загонять в MySQL - длится сутки даже по localhost.
Полный абзац! Меняйте "консерваторию"! Или там живёт ЧТО-ТО, о чём Вы не знаете!
2.5 млн. инсертов (просто инсерт и ничего больше) - 9-10 минут... не localhost, конечно!
UPDATE работает дольше чем INSERT
так как она ещё и ищет запись по ключу прежде чем обновить.
Согласен что можно ускорить процесс, так как там интерфейсная часть ещё и всякие рефреши в окне, да и комп слабоват.
Но всё равно я думаю через SQLPREPARE() будет пошустрее если их пачкой сперва выдать и в конце SQLEXEC().
...
Рейтинг: 0 / 0
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
    #37092380
Питон33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
прошелмимос курсорадаптером сами пример найдете?
или рисовать?
Нарисуй, только условие я написал - на сервере Ни каких программ устанавливать не будут - это исключено.
...
Рейтинг: 0 / 0
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
    #37092594
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Питон33tanglir,

Пример можно?вот кусок примера:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
  ifile='myfile.dbf'
  ofile='myfile.csv'
  USE (ifile) IN  0  ALIAS src
  SELECT src
  COPY TO (ofile) TYPE DELIMITED WITH ^ &&вот копирование в csv
  USE IN src
  TEXT TO CQUERY NOSHOW PRETEXT  15  TEXTMERGE
		Load Data infile '<<STRTRAN(ofile,"\","/")>>' Into Table <<tblname>>
		 character set 'cp1251'
		 Fields terminated By ',' optionally enclosed By '^'
		 LineS terminated By '\n';
  ENDTEXT
  ?SQLEXEC(cn,cquery) &&вот использование load data
что в нём непонятного?
...
Рейтинг: 0 / 0
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
    #37092805
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Питон33ВладимирМ"Не верю" (с) Не может такое относительно небольшое количество записей столько времени обрабатываться. Что-то Вы не договариваете. Какие-то у Вас идут дополнительные обработки не связанные с закачкой данных на сервер.
Поверьте это так. 500 000 записей, по одной записи обновляются в цикле командой MySQL UPDATE по уникальному ключу.
Процесс длится сутки.
Мы так будем еще месяца два обсуждать. То Вы заявляете, что Вам надо всего-лишь закачать таблицу DBF в базу MySQL, то теперь вдруг выясняется, что Вы выполняете какую-то модификацию. Поскольку Вы не можете внятно объяснить, что же именно Вы делаете, я и предлагаю Вам привести код выполняемых операций. Тогда и советы по оптимизации будут более предметными.


Питон33ВладимирМДа какой там план выполнения у команды вставки одной записи! Откуда возьмется ускорение-то? Впрочем, может это какая фича именно MySQL?
Ускорение будет, так как выполняются все команды сразу, а не по отдельности SQLEXEC()
Каждый раз SQLEXEC() ожидает ответа от сервера, иными словами 500 000 раз тормозит.
SQLPREPARE() просто подготавливает для выполнения, а выполнение будет в самом конце по команде SQLEXEC().
Похоже, Вы не понимаете, что именно делает сервер и для чего нужна команда SQLPrepare().

Любой сервер (любая СУБД) прежде, чем выполнить какую-либо команду предварительно строит план ее выполнения для того, чтобы выбрать наиболее оптимальный (наиболее быстрый) способ ее выполнения. Таким образом, выполнение команды разбивается на 2 этапа

- Формирование плана выполнения команды
- Собственно выполнение по сформированному плану

Так вот, команда SQLExec() выполняет обе эти операции. А SQLPrepare() - это предварительное построение плана выполнения запроса без собственно выполнения. А последующая SQLExec() - причем определенного вида - просто использует этот план.

Когда будет выгодно использование SQLPrepare()? Очевидно, при выполнении множества однотипных запросов (множество SQLExec() в цикле), для которых один и тот же план выполнения будет наиболее оптимальным. При этом, разумеется, для конкретного SQL-сервера должна иметься принципиальная возможность разделить операцию построения плана и собственно выполнение команды

Теперь, что именно Вы заявили с самого начала (что именно Вы делаете).

Питон33КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
Любой человек работающий с базами данных однозначно интерпретирует подобную постановку задачи как Insert-SQL. Т.е. вставка новых записей. Не думаю, чтобы план построения команды на вставку записи отличался какой-либо сложностью и занимал много времени. Как следствие, SQLPrepare() в принципе не должен дать никакого заметного ускорения.

Однако далее вдруг возникает упоминание о каких-то UPDATE, что совершенно не вяжется с заявленной в начале темы постановки задачи. Вам надо не "передать таблицу", а обновить информацию в талице MySQL данными из таблицы DBF. А это уже принципиально другая постановка задачи.

Подобная задача в принципе не решается "одной командой". Никак. Никоим образом. Тут, как минимум, 3 этапа

- Обновить записи, которые есть и в MySQL, и в DBF
- Удалить записи, которые есть в MySQL, но нет в DBF
- Создать записи, которых нет в MySQL, но есть в DBF

Разумеется, чтобы выполнить сравнение таблицы MySQL и DBF их сначала необходимо "перелить" в общее хранилище. Либо DBF в некую временную таблицу MySQL, либо таблицу MySQL в таблицу DBF, либо их обоих в какое-то третье хранилище. А потом уже выполнять сравнение.

Так ЧТО Вы хотите сделать? Не надо словами. У Вас не очень-то получается. Приведите код. Не обязательно командами. Можно просто описание этапов действий, примерно так:

- Организуем цикл перебора записей в DBF
- Для каждой записи DBF ищем запись в MySQL
- Если нашли, то обновляем информацию
- Если не нашли, то создаем новую запись в MySQL
- (...)

Вы ЭТО делаете или что-то другое?
...
Рейтинг: 0 / 0
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
    #37093020
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМ....
Подобная задача в принципе не решается "одной командой". Никак. Никоим образом. Тут, как минимум, 3 этапа

- Обновить записи, которые есть и в MySQL, и в DBF
- Удалить записи, которые есть в MySQL, но нет в DBF
- Создать записи, которых нет в MySQL, но есть в DBF

В Microsoft SQL 2008 решается. Теперь есть команда MERGE:
Выполняет операции вставки, обновления или удаления для целевой таблицы на основе результатов соединения с исходной таблицей. Например, можно синхронизировать две таблицы путем вставки, обновления или удаления строк в одной таблице на основании отличий, найденных в другой таблице.

А если такая команда в MySQL не знаю!
С уважением, Алексей
...
Рейтинг: 0 / 0
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
    #37093233
Питон33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ,

Вы просто переписали мои же слова.
Если в цикле стоят команды UPDATE и выполняются 500 000 раз, тогда
SQLPREPARE() совместно с SQLEXEC() будет работать быстрее чем просто SQLEXEC()
Для этого подготавливаем группу команд для MySQL по средством SQLPREPARE()
А в самом конце даём один раз SQLEXEC()
Возникает вопрос: Сколько их всего таких команд можно и желательно посылать мускулу за один цикл через SQLPREPARE() ?
...
Рейтинг: 0 / 0
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
    #37093272
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Питон33
> Возникает вопрос: Сколько их всего таких команд можно и желательно посылать мускулу за один цикл через
> SQLPREPARE() ?

Спроси об этом в ветке по MySql.

И, я присоединяюсь к мнению многих что у тебя что-то в консерватории не правильно, если апдейт пятисот тысяч записей
занимает восемь часов. Что именно не правильно отсюда не видно, это может быть:
отсуствие индекса по полю фильтрации

тригера, выполняющие сложные вычисления или каскады тригеров

серверное железо не справляется с нагрузкой

загружен канал передачи данных

...

комбинация вышеперечисленных причин

Препарированием запроса ты вряд-ли "кардинально" улучшишь производительность. Тебе лучше пообщатся со специалистами в
MySql на предмет как лучше реализовать массовые обновления.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
    #37093274
Питон33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir,

Я понял вашу мысль
это тоже интересный способ.
Т.е. как я понял:
Load Data infile - это команда mysql которая попросит mysql закачать файл с моего компа?
Не будет ли при этом комп задавать лишних вопросов пугая юзеров?
Идея интересная, но реализация сложновата.
...
Рейтинг: 0 / 0
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
    #37093299
Питон33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Игорь Горбонос,

Тут вопрос и к фокспрошникам и к мускулистам.
По-скольку мне надо закачать DBF на сервак, а работать с форматом MySQL.
При этом нужно выбрать быстрый и удобный способ.
Повторяю - на серваке никто никаких программ и модулей дополнительно устанавливать не будет.
...
Рейтинг: 0 / 0
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
    #37093317
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Питон33
> Тут вопрос и к фокспрошникам и к мускулистам.


Да, только мускулисты тусуются здесь , а фокспрошники тебе уже
выдали все возможные рекомендации. Осталась только специфика MySql :)

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
    #37093335
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Питон33Вы просто переписали мои же слова.
Если в цикле стоят команды UPDATE и выполняются 500 000 раз, тогда
SQLPREPARE() совместно с SQLEXEC() будет работать быстрее чем просто SQLEXEC()
Это предположение . Но далеко не факт, что именно так и будет.

Питон33Для этого подготавливаем группу команд для MySQL по средством SQLPREPARE()
А в самом конце даём один раз SQLEXEC()
Не так. Вы опять ничего не поняли. Вот пример из справки FoxPro по команде SQLPrepare()

Код: plaintext
1.
2.
3.
4.
5.
6.
gcAuthor = 'Smith'
= SQLPREPARE(gnHandle, 'SELECT * FROM authors WHERE au_lname = ?gcAuthor')
= SQLEXEC(gnHandle)
...
gcAuthor = 'Jones'
= SQLEXEC(gnHandle)
Видите в чем дело? Используется параметризированный запрос. Другими словами, последующий SQLExec() выполняет тот же самый запрос , просто меняет параметр искомого значения. Сам запрос не изменился. Изменилось только искомое значение.

Что требуется в Вашем случае - совершенно непонятно. Вы все время уходите в сторону не желая сознаться, что же Вы делаете. Вот я и прошу уже в который раз написать ЧТО Вы делаете?

Питон33По-скольку мне надо закачать DBF на сервак, а работать с форматом MySQL.
SQLPrepare() к этому вопросу вообще не имеет никакого отношения.
...
Рейтинг: 0 / 0
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
    #37093393
Sergey Sizov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Питон33работать с форматом MySQL.C форматом Вам поработать не удасться. Вы можете поработать с сервером, отправляя ему команды и получая результаты отработки этих команд. Формата MySQL, впрочем как и формата MS SQL нет. Есть форматы хранения, которые пользователю сервера нафиг не нужны.
...
Рейтинг: 0 / 0
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
    #37093543
Питон33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМНаконец, вероятно, Вы этот момент не вполне поняли, но можно в одном пакете передавать несколько команд. Примерно так

Код: plaintext
1.
2.
3.
4.
strCommand = "INSERT INTO tabMySQL (Field1, Field1, Field3) values (1,1,1) " + ;
	"INSERT INTO tabMySQL (Field1, Field1, Field3) values (2,2,2) " + ;
	"INSERT INTO tabMySQL (Field1, Field1, Field3) values (3,3,3) "
=SQLExec("номер соединения", strCommand)

Надо только уточнить, каким символом разделяются команды в среде MySQL. Будет ли достаточно пробела (как в приведенном примере) или надо что-то еще ставить. Например, точку с запятой или перевод строки

Проверил, не работает ни точка с запятой, ни пробел.
SQLPREPARE() тоже не помогает.
...
Рейтинг: 0 / 0
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
    #37093602
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Питон33,

в настройках соединения есть такая штука, как OPTION (числовое), один из параметров в нём называется "allow multiple statements". Поищите, значения параметров где-то даже тут были.
...
Рейтинг: 0 / 0
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
    #37093636
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Питон33ВладимирМНаконец, вероятно, Вы этот момент не вполне поняли, но можно в одном пакете передавать несколько команд. Примерно так

Код: plaintext
1.
2.
3.
4.
strCommand = "INSERT INTO tabMySQL (Field1, Field1, Field3) values (1,1,1) " + ;
	"INSERT INTO tabMySQL (Field1, Field1, Field3) values (2,2,2) " + ;
	"INSERT INTO tabMySQL (Field1, Field1, Field3) values (3,3,3) "
=SQLExec("номер соединения", strCommand)

Надо только уточнить, каким символом разделяются команды в среде MySQL. Будет ли достаточно пробела (как в приведенном примере) или надо что-то еще ставить. Например, точку с запятой или перевод строки

Проверил, не работает ни точка с запятой, ни пробел.
Плохо проверяли, да и ленитесь сами искать. Неоднократно же "посылали" на форум по MySQL. Поиск по фразе "несколько команд" сразу выдал ссылку

http://dev.mysql.com/doc/refman/5.0/en/c-api-multiple-queries.html

Т.е. разделителем команд является точка с запятой, следовательно синтаксис должен быть такой

Код: plaintext
1.
2.
3.
4.
strCommand = "INSERT INTO tabMySQL (Field1, Field1, Field3) values (1,1,1); " + ;
	"INSERT INTO tabMySQL (Field1, Field1, Field3) values (2,2,2); " + ;
	"INSERT INTO tabMySQL (Field1, Field1, Field3) values (3,3,3) "
=SQLExec("номер соединения", strCommand)

Однако предварительно надо дать понять MySQL, что один запрос может содержать несколько команд. Для этого в строке соединения указать опцию CLIENT_MULTI_STATEMENTS или указать эту опцию отдельной настройкой после установки соединения

MySQLMySQL 5.0 also supports the execution of a string containing multiple statements separated by semicolon (“;”) characters. This capability is enabled by special options that are specified either when you connect to the server with mysql_real_connect() or after connecting by calling` mysql_set_server_option().


Питон33SQLPREPARE() тоже не помогает.
И не должен помочь. Вам уже неоднократно объяснили, что SQLPrepare() вообще о другом.
...
Рейтинг: 0 / 0
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
    #37093850
Питон33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ,

Как выглядит строка подключения с опцией MYSQL_OPTION_MULTI_STATEMENTS ?
Я пробую не получается.
Driver=MySQL ODBC 3.51 Driver;SERVER=***;UID=***;PWD=***;DATABASE=***;PORT=3306;MYSQL_OPTION_MULTI_STATEMENTS= чему равно?
...
Рейтинг: 0 / 0
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
    #37093860
Фотография Игорь Горбонос
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> Автор: Питон33
> Как выглядит строка подключения с опцией MYSQL_OPTION_MULTI_STATEMENTS ?


А с чего ты решил что эта опция должна быть в строке подключения?
А может она устанавливается SqlPropSet(или как она там) ?
А почему ты не читаешь документацию к используемому драйверу?
А почему ты не спросишь, наконец, в форуме по MySql?
....
А почему ты решил, что за тебя сделают всю работу?

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
    #37093871
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
Driver=MySQL ODBC  3 . 51  Driver;SERVER=***;UID=***;PWD=***;DATABASE=***;PORT= 3306 ;OPTION=
ХЗ, не помню. Если не хочется копаться в мануалах: Панель Управдения - Администрирование - Источники данных - новый источник (файловый) - создаем подключение к майскулю, отмечаем allow multiple statements, отмечаем ещё что захотим - проверяем подключение - сохраняем файл - открываем файл (это просто текстовик) и смотрим значение OPTION. Собственно, можно практически всю строку подключения оттуда содрать :)
Если ни это, ни чтение мануалов не поможет, тогда переходи на фвмас
...
Рейтинг: 0 / 0
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
    #37093873
Питон33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Игорь Горбонос,

Потому что в документации написано:
/* connect to server with the CLIENT_MULTI_STATEMENTS option */
if (mysql_real_connect (mysql, host_name, user_name, password,
db_name, port_num, socket_name, CLIENT_MULTI_STATEMENTS) == NULL)
{
printf("mysql_real_connect() failed\n");
mysql_close(mysql);
exit(1);
}

/* execute multiple statements */

Как написать строку подключения в фоксе?
Я пробую не получается.
Вернее подключение устанавливается но команды разделённые ; не принимает.
Driver=MySQL ODBC 3.51 Driver;SERVER=***;UID=***;PWD=***;DATABASE=***;PORT=3306;MYSQL_OPTION_MULTI_STATEMENTS= чему равно?
...
Рейтинг: 0 / 0
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
    #37093884
Питон33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir
Код: plaintext
Driver=MySQL ODBC  3 . 51  Driver;SERVER=***;UID=***;PWD=***;DATABASE=***;PORT= 3306 ;OPTION=
ХЗ, не помню. Если не хочется копаться в мануалах: Панель Управдения - Администрирование - Источники данных - новый источник (файловый) - создаем подключение к майскулю, отмечаем allow multiple statements, отмечаем ещё что захотим - проверяем подключение - сохраняем файл - открываем файл (это просто текстовик) и смотрим значение OPTION. Собственно, можно практически всю строку подключения оттуда содрать :)
Если ни это, ни чтение мануалов не поможет, тогда переходи на фвмас
Попробовал
OPTION=MYSQL_OPTION_MULTI_STATEMENTS
а так же
OPTION=MYSQL_OPTION_MULTI_STATEMENTS_ON

Не помогает.
Не принимает команды разделённый точкой с запятой!
По отдельности команды принимает и отрабатывает без проблем.
...
Рейтинг: 0 / 0
КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
    #37093890
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Питон33,

а создать файловый DSN и прочитать его, как я выше писал, попробовал? Обратить внимание на то, что OPTION в данном случае - это ЧИСЛО, попробовал?
...
Рейтинг: 0 / 0
25 сообщений из 62, страница 2 из 3
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / КАК ПЕРЕДАТЬ ВСЮ ТАБЛИЦУ DBF ОДНОЙ КОМАНДОЙ - ИЗ VFP В MYSQL ???
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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