Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
15-1202459292
arhis
2008-02-08 11:28
2008.03.30
Окно Structure


15-1202826005
arreke
2008-02-12 17:20
2008.03.30
AnimationEffect


11-1186479034
Preddy
2007-08-07 13:30
2008.03.30
MouseMove как в VCL


2-1204472475
Alex
2008-03-02 18:41
2008.03.30
Совсем лёгкий вопрос


15-1203066579
Jimmy
2008-02-15 12:09
2008.03.30
Описание скриптов для PhotoShop CS





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский