powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / SQL Server + Visual Fox Pro 6.0
10 сообщений из 10, страница 1 из 1
SQL Server + Visual Fox Pro 6.0
    #33676257
Миклухо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
StrSQL="INSERT INTO BOOKS(ID, Author, Edited) VALUES (?NewID, ?zAuthor, ?zEdited)"
nAnswr=SQLEXEC(nCON,StrSQL)
ErrServ(nAnswr, StrSQL)

Я написала добавление записи в таблицу BOOKS, имеющую поля Author и Edited. Вроде бы все правильно. Будет ли это работать? Драйвер ODBC уже установила.
...
Рейтинг: 0 / 0
SQL Server + Visual Fox Pro 6.0
    #33676269
Фотография YuriWhite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Форумом не промахнулись ? :)

Будет.
...
Рейтинг: 0 / 0
SQL Server + Visual Fox Pro 6.0
    #33676297
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МиклухоВроде бы все правильно. Будет ли это работать? Драйвер ODBC уже установила.

1. Попробовать
2. Если не создано, то создать соединение через SQLCONNECT/SQLSTRINGCONNECT
3. Убедиться, что добавляемые данные не нарушают COSTRAINT-ов
4. Определиться с "видимостью" переменных
5. Корректно обработать ошибку.
...
Рейтинг: 0 / 0
SQL Server + Visual Fox Pro 6.0
    #33676364
Миклухо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PaulWist МиклухоВроде бы все правильно. Будет ли это работать? Драйвер ODBC уже установила.
1. Попробовать
2. Если не создано, то создать соединение через SQLCONNECT/SQLSTRINGCONNECT
3. Убедиться, что добавляемые данные не нарушают COSTRAINT-ов
4. Определиться с "видимостью" переменных
5. Корректно обработать ошибку.

А ваще, на твой взгляд, все правильно написано, будет работать ? Если да, то я может быть попробую. Как считаешь.
...
Рейтинг: 0 / 0
SQL Server + Visual Fox Pro 6.0
    #33676577
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уговорил.

Разрешаю попробовать.

ЗЫ О результатах, доложить
...
Рейтинг: 0 / 0
SQL Server + Visual Fox Pro 6.0
    #33676687
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. На сервер базы данных из клиентской программы, написанной на VFP посылается через SQL pass-through (команда SQLEXEC) пакет, состоящий из команды вставки одной записи в таблицу BOOKS.
2. Для отсылки команды используется дескриптор соединения nCON
3. Автор реализовал собственный обработчик результата работы команды SQLEXEC через функцию ErrServ, которой передает в качестве параметра результат работы команды SQLEXEC - nAnswr и саму команду - StrSQL.
4. Вставляемые в таблицу значения передаются в команду SQLEXEC через параметры, о чем свидетельствуют знаки '?' перед переменными. Для собственного обработчика ошибок это не очень удобно.
Лучше бы строку StrSQL "собирать" прямо:
StrSQL=[INSERT INTO BOOKS(ID, Author, Edited) VALUES (] + CAST(NewID AS V(10) + [, '] + ALLTRIM(zAuthor) + [', '] + ALTRIM(zEdited) + [')]
Тут я полагаю,что NewID - INTEGER, а zAuthor и zEdited символьные поля и работа ведется в VFP 9.0.
В этом случае в функции ErrServ, при ошибки, в ЛОГ-файл можно будет записать полный текст команды, которая привела к ошибке, а не очень информативный текст типа "..?NewID..."
5. Если SQLEXEC настроена на работу в асинхронном режиме, то это все в корне не верно. Надо после SQLEXEC проверять, а закончилось ли выполнение команды SQLEXEC... , и только при ее окончании уходить на обрабтоку ошибки.

С уважением, Алексей
P.S. Совсем не факт, что SQLEXEC выполняется именно на SQL Server, т.к. не известно, как был получен дескриптор соединения nCON.
...
Рейтинг: 0 / 0
SQL Server + Visual Fox Pro 6.0
    #33676712
Фотография FM32YO aka KID
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
МиклухоStrSQL="INSERT INTO BOOKS( ID , Author, Edited) VALUES (?NewID, ?zAuthor, ?zEdited)"
nAnswr=SQLEXEC(nCON,StrSQL)
ErrServ(nAnswr, StrSQL)

Я написала добавление записи в таблицу BOOKS, имеющую поля Author и Edited. Вроде бы все правильно. Будет ли это работать? Драйвер ODBC уже установила.


ИМХО ID Вы ни в коем случае не должны вот так вставлять в таблицу....
уникальный номер должен сервер генерить???
И, тогда не будет у вас проблем с констрейнтами
...
Рейтинг: 0 / 0
SQL Server + Visual Fox Pro 6.0
    #33676761
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
FM32YO aka KID Вы ни в коем случае не должны вот так вставлять в таблицу....
уникальный номер должен сервер генерить???
И, тогда не будет у вас проблем с констрейнтами
А откуда вы знаете, что ID - это PK таблицы BOOKS?!
Скорее всего, это ссылка на какой-нибудь справочник, а ее (BOOKS) cобственный ID генерится через, например IDENTITY (UNIQUEIDENTIFIER, триггер и пр.) при INSERT.
С уважением, Алексей.
...
Рейтинг: 0 / 0
SQL Server + Visual Fox Pro 6.0
    #33677145
FM32YO___
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Aleksey-K FM32YO aka KID Вы ни в коем случае не должны вот так вставлять в таблицу....
уникальный номер должен сервер генерить???
И, тогда не будет у вас проблем с констрейнтами
А откуда вы знаете, что ID - это PK таблицы BOOKS?!
Скорее всего, это ссылка на какой-нибудь справочник, а ее (BOOKS) cобственный ID генерится через, например IDENTITY (UNIQUEIDENTIFIER, триггер и пр.) при INSERT.
С уважением, Алексей.


просто предположил.. может угадал, а может и нет + выше сказали - проверить констрэйнты, мне всегда казалось, что уникальность достигается сервером, и как можно побить констрэйнты кроме как силой указать = ИНСЕРТ ИД, который уже там есть?
...
Рейтинг: 0 / 0
SQL Server + Visual Fox Pro 6.0
    #33684608
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi FM32YO aka KID!

> ИМХО ID Вы ни в коем случае не должны вот так вставлять в таблицу....
> уникальный номер должен сервер генерить???

Ну возможно что значение "сам сервер" и сгенерировал, но не в момент
вставки, а до того - при добавлении записи в локальный курсор. Это гораздо
удобнее и проще, нежели использовать IDENTITY (значение которого невозможно
узнать ДО выполнения операции вставки).

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / SQL Server + Visual Fox Pro 6.0
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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