Форум: "Начинающим";
Текущий архив: 2008.03.30;
Скачать: [xml.tar.bz2];
ВнизПомогите переделать функцию из фокса в дельфи Найти похожие ветки
← →
scorpio © (2008-02-27 18:19) [0]Добрый вечер. Помогите плиз функцию переделать, или подскажите какой нибудь другой способ, как мне сделать аналогичное:
*
процедура инсерта курсора. параметры
* 1. Имя локального курсора
* 2. Имя таблицы сервера
LPARAMETERS pCursor, pOraTable
LOCAL arData, arField, sData, sField, c, sqlcmd, result
sData=""
sField=""
SELECT (pCursor)
DIMENSION arField[1]
=AFIELDS(arField)
DIMENSION arData[ALEN(arField,1)]
SCATTER TO arData
*SET STEP ON
FOR c=1 TO ALEN(arField,1)
sField = sField + IIF(c>1,",","") + arField[c,1]
sData = sData + IIF(c>1,",","") + "?arData["+LTRIM(STR(c,3,0))+"]"
IF NOT ISNULL(arData[c])
DO CASE
CASE TYPE("arData[c]") == "C"
IF EMPTY(arData[c])
arData[c] = NULL
ELSE
arData[c] = ALLTRIM(arData[c])
ENDIF
CASE TYPE("arData[c]") == "N"
IF arData[c] = 0
arData[c] = NULL
ENDIF
CASE TYPE("arData[c]") == "D"
IF EMPTY(arData[c])
arData[c] = NULL
ENDIF
ENDCASE
ENDIF
ENDFOR
sqlcmd="INSERT INTO "+pOraTable+" ("+sField+") VALUES ("+sData+")"
result = SQLEXEC(con_handle, sqlcmd)
IF result < 1
MESSAGEBOX("Ошибка записи данных. "+pOraTable+CHR(13)+CHR(13)+sqlcmd,16,"")
RETURN .F.
ELSE
WAIT "Данные сохранены" WINDOW NOWAIT
RETURN .T.
ENDIF
Анологичная есть для udate
Цель: Делаем запрос на таблицу любую например li, получаем курсор с структурой этой таблицы как минимум, либо с одной записью. Затем в этот курсор вносим изменения и далее функция его заливает на сервер.
Смысл реализации: Используется много полей в таблице, доходит до 100, а писать INSERT INTO li (...) values () , а потом еще и такой адэйт, тяжко. Да и форм тоже очень много, особенно хреново когда начинаются переименования добавления полей.
Как можно упростить INSERT и UPDATE мне ???
← →
Johnmen © (2008-02-27 20:13) [1]
> Как можно упростить INSERT и UPDATE мне ???
Указывать только необходимые/измененные поля.
← →
scorpio_ (2008-02-27 22:33) [2]И как ??
Откуда я могу знать кто поменяет и что в 100 ячейках формы ??
А если новая запись ?? У меня один инсерт будет строк на 20, не говоря о том, что будет, кода придет время изменений в структуре таблицы.
← →
Johnmen © (2008-02-27 23:03) [3]Пользуй TTable (BDE), и не будешь видеть описанного ужаса, на который ты сам себя обрёк.
ЗЫ
100 полей говорит только о проблемах в консерватории.
← →
Amoeba © (2008-02-27 23:12) [4]
> Используется много полей в таблице, доходит до 100
Ну просто пипец! Явно, что что-то не так в датском королевстве.
← →
Anatoly Podgoretsky © (2008-02-28 01:32) [5]> scorpio_ (27.02.2008 22:33:02) [2]
Не пугай, мы считаем не строками, а страницами.
← →
Германн © (2008-02-28 01:55) [6]
> не говоря о том, что будет, кода придет время изменений
> в структуре таблицы.
Это новая интерпретация Армагеддона?
← →
scorpio © (2008-02-28 08:29) [7]Обидно что нельзя себе упростить жизнь. Придется все писать ручками.
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.03.30;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.041 c