| 
 | 
| 
 
Несоответствие возвращаемого типа 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Ситуация: Создана таблица с такими полями -int id -char name В TableDesigner'e в графе default value стоит вызов хранимой процедуры autoinc(), которая определена как : *================= PROCEDURE autoinc select i_id from partitions HAVING i_id =MAX(i_id) INTO ARRAY v *RETURN v +1 RETURN v[1,1] +1 *================= и предназначена для возвращения мах+1 значения из partitions. Проблема: Процедура возвращает вроде бы все верно, но при сохранении возвращенного значения в таблицу Фокс ругается "Несовпадение типов данных" даже при такой ситуации: *================= PROCEDURE autoinc v=5 RETURN v *================= И еще: как передать в параметры этой функции имена таблицы из которой будет выбираться значение и поле по которому оно будет выбираться, для того чтобы эту функцию сделать универсальной для всех таблиц проекта. Заранее благодарен. == Михаил. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.05.2003, 15:32 | 
  
  
  
   | 
||
| 
 
Несоответствие возвращаемого типа 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  > но при сохранении возвращенного значения в таблицу Фокс ругается "Несовпадение типов данных"  Глюки, вот такое у меня заработало: Код: plaintext 1. 2. 3. 4. 5. А так, на having ругалась и v принимала за функцию. > как передать в параметры этой функции имена таблицы из которой будет выбираться значение и поле по которому оно будет выбираться Код: plaintext 1. 2. 3. 4. Имя таблицы можно не передавать, а определять изнутри. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.05.2003, 19:19 | 
  
  
  
   | 
||
| 
 
Несоответствие возвращаемого типа 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  У меня и так и так не работает ... > LOCAL ARRAY v[1,1] Это можно не писать. Массив должен сам создаваться, так пишут в доках... Параметры функции :( увы но никак не могу одолеть ... Пишу так: =autoinc("FieldName") .. PROCEDURE autoinc LPARAMETERS cFieldName LOCAL ARRAY v[1,1] select MAX( cFieldName )+1 from (ALIAS()) INTO ARRAY v RETURN v[1,1] ENDPROC Выдаёт ошибки : select MAX( cFieldName )+1 from (ALIAS()) INTO ARRAY v error ..... А при задании явно ( select MAX( id)+1 from (ALIAS()) INTO ARRAY v ) названия поля - опять : при сохранении возвращенного значения в таблицу Фокс ругается "Несовпадение типов данных" ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.05.2003, 20:14 | 
  
  
  
   | 
||
| 
 
Несоответствие возвращаемого типа 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  > Выдаёт ошибки : select MAX( cFieldName )+1 from (ALIAS()) INTO ARRAY v error ..... select MAX( &cFieldName )+1 from (ALIAS()) INTO ARRAY v Попробуйте поменять имя массива, мне кажется фокс пытается схватить функцию с именем v (есть такая?). ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.05.2003, 22:01 | 
  
  
  
   | 
||
| 
 
Несоответствие возвращаемого типа 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  > select MAX( &cFieldName )+1 from (ALIAS()) INTO ARRAY v  - Это помогло теперь я получаю выборку из таблицы по полю передаваемому в переменной cFieldName >Попробуйте поменять имя массива, мне кажется фокс пытается схватить >функцию с именем v (есть такая?). Нет такой функции нет, но имя на всякий случай изменил ... Теперь такая ошибка: (При вызове откомпилированного файла) Error 152 Отсутствует выражение ... или: (при запуске формы из Fox PRO) select MAX( &cFieldName )+1 from (ALIAS()) INTO ARRAY v Error 152 ... Что-то мне кажется что Фокс по сравнению с Delphi или Builder такая глючная штука, трудно блин его приручить :) Надеюсь на вашу помощь :) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.05.2003, 00:52 | 
  
  
  
   | 
||
| 
 
Несоответствие возвращаемого типа 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  2_BMP > Что-то мне кажется что Фокс по сравнению с Delphi или Builder такая глючная штука, трудно блин его приручить :) Надеюсь на вашу помощь :) Просто при кажущейся простоте фокса, он не прощает определенных вещей :) Что касается самой проблемы, то поскольку у меня все работает без проблем, я могу лишь дать несколько советов: 1. Внимательно прогоните код через дебаггер, чтобы определить в каком месте возникает ошибка, что откуда вылазит и почему конфликтует. 2. Проверьте, что у Вас установлен последний servpack для 5-6-7-q версии. http://msdn.microsoft.com/vfoxpro/downloads/updates/default.asp 3. Перейдите на 8-ю версию, там autoinc реализован. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.05.2003, 10:46 | 
  
  
  
   | 
||
| 
 | 

start [/forum/topic.php?fid=41&fpage=423&tid=1598311]:  | 
    0ms | 
get settings:  | 
    11ms | 
get forum list:  | 
    13ms | 
check forum access:  | 
    4ms | 
check topic access:  | 
    4ms | 
track hit:  | 
    44ms | 
get topic data:  | 
    12ms | 
get forum data:  | 
    3ms | 
get page messages:  | 
    43ms | 
get tp. blocked users:  | 
    1ms | 
| others: | 11ms | 
| total: | 146ms | 

| 0 / 0 | 

    Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
    
    
    «На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
    
    
    ... ля, ля, ля ...