|
|
|
SQL Server + Visual Fox Pro 6.0
|
|||
|---|---|---|---|
|
#18+
StrSQL="INSERT INTO BOOKS(ID, Author, Edited) VALUES (?NewID, ?zAuthor, ?zEdited)" nAnswr=SQLEXEC(nCON,StrSQL) ErrServ(nAnswr, StrSQL) Я написала добавление записи в таблицу BOOKS, имеющую поля Author и Edited. Вроде бы все правильно. Будет ли это работать? Драйвер ODBC уже установила. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2006, 13:02 |
|
||
|
SQL Server + Visual Fox Pro 6.0
|
|||
|---|---|---|---|
|
#18+
Форумом не промахнулись ? :) Будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2006, 13:04 |
|
||
|
SQL Server + Visual Fox Pro 6.0
|
|||
|---|---|---|---|
|
#18+
МиклухоВроде бы все правильно. Будет ли это работать? Драйвер ODBC уже установила. 1. Попробовать 2. Если не создано, то создать соединение через SQLCONNECT/SQLSTRINGCONNECT 3. Убедиться, что добавляемые данные не нарушают COSTRAINT-ов 4. Определиться с "видимостью" переменных 5. Корректно обработать ошибку. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2006, 13:08 |
|
||
|
SQL Server + Visual Fox Pro 6.0
|
|||
|---|---|---|---|
|
#18+
PaulWist МиклухоВроде бы все правильно. Будет ли это работать? Драйвер ODBC уже установила. 1. Попробовать 2. Если не создано, то создать соединение через SQLCONNECT/SQLSTRINGCONNECT 3. Убедиться, что добавляемые данные не нарушают COSTRAINT-ов 4. Определиться с "видимостью" переменных 5. Корректно обработать ошибку. А ваще, на твой взгляд, все правильно написано, будет работать ? Если да, то я может быть попробую. Как считаешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2006, 13:22 |
|
||
|
SQL Server + Visual Fox Pro 6.0
|
|||
|---|---|---|---|
|
#18+
Уговорил. Разрешаю попробовать. ЗЫ О результатах, доложить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2006, 14:05 |
|
||
|
SQL Server + Visual Fox Pro 6.0
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2006, 14:27 |
|
||
|
SQL Server + Visual Fox Pro 6.0
|
|||
|---|---|---|---|
|
#18+
МиклухоStrSQL="INSERT INTO BOOKS( ID , Author, Edited) VALUES (?NewID, ?zAuthor, ?zEdited)" nAnswr=SQLEXEC(nCON,StrSQL) ErrServ(nAnswr, StrSQL) Я написала добавление записи в таблицу BOOKS, имеющую поля Author и Edited. Вроде бы все правильно. Будет ли это работать? Драйвер ODBC уже установила. ИМХО ID Вы ни в коем случае не должны вот так вставлять в таблицу.... уникальный номер должен сервер генерить??? И, тогда не будет у вас проблем с констрейнтами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2006, 14:32 |
|
||
|
SQL Server + Visual Fox Pro 6.0
|
|||
|---|---|---|---|
|
#18+
FM32YO aka KID Вы ни в коем случае не должны вот так вставлять в таблицу.... уникальный номер должен сервер генерить??? И, тогда не будет у вас проблем с констрейнтами А откуда вы знаете, что ID - это PK таблицы BOOKS?! Скорее всего, это ссылка на какой-нибудь справочник, а ее (BOOKS) cобственный ID генерится через, например IDENTITY (UNIQUEIDENTIFIER, триггер и пр.) при INSERT. С уважением, Алексей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2006, 14:48 |
|
||
|
SQL Server + Visual Fox Pro 6.0
|
|||
|---|---|---|---|
|
#18+
Aleksey-K FM32YO aka KID Вы ни в коем случае не должны вот так вставлять в таблицу.... уникальный номер должен сервер генерить??? И, тогда не будет у вас проблем с констрейнтами А откуда вы знаете, что ID - это PK таблицы BOOKS?! Скорее всего, это ссылка на какой-нибудь справочник, а ее (BOOKS) cобственный ID генерится через, например IDENTITY (UNIQUEIDENTIFIER, триггер и пр.) при INSERT. С уважением, Алексей. просто предположил.. может угадал, а может и нет + выше сказали - проверить констрэйнты, мне всегда казалось, что уникальность достигается сервером, и как можно побить констрэйнты кроме как силой указать = ИНСЕРТ ИД, который уже там есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2006, 16:47 |
|
||
|
SQL Server + Visual Fox Pro 6.0
|
|||
|---|---|---|---|
|
#18+
Hi FM32YO aka KID! > ИМХО ID Вы ни в коем случае не должны вот так вставлять в таблицу.... > уникальный номер должен сервер генерить??? Ну возможно что значение "сам сервер" и сгенерировал, но не в момент вставки, а до того - при добавлении записи в локальный курсор. Это гораздо удобнее и проще, нежели использовать IDENTITY (значение которого невозможно узнать ДО выполнения операции вставки). Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.04.2006, 22:50 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33676687&tid=1591841]: |
0ms |
get settings: |
5ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
147ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 439ms |

| 0 / 0 |
