Конференция "Базы" » Грабли с MySql [D7, MySQL]
 
  • Павел Калугин © (14.03.08 13:19) [0]
    Пытаюсь работать с MySql через ado odbc
    Настроил подключение, соединяется.
    пытаюсь сделать запрос вида
     select field from table
    так на одной из таблиц (как назло нужной) получаю ошибку
    ---------------------------
    Error
    ---------------------------
    Произошли ошибки во время выполнения многошаговой операции. Проверьте значения всех состояний.
    ---------------------------
    OK   Details >>  
    ---------------------------
    Куда смотреть, как понять откуда данная ошибка лезет?
  • sniknik © (14.03.08 13:23) [1]
    > Произошли ошибки во время выполнения многошаговой операции. Проверьте значения всех состояний.
    возможно ошибка в параметрах подключения.
  • www (14.03.08 13:27) [2]

    > Куда смотреть, как понять откуда данная ошибка лезет?

    сюда

    >  Details >>  
  • Johnmen © (14.03.08 13:37) [3]

    > Павел Калугин ©   (14.03.08 13:19) 

    Это под IDE или нет?
  • Павел Калугин © (14.03.08 13:45) [4]

    > Johnmen ©   (14.03.08 13:37) [3]

    и поб IDE  и при попыьке подключится из приложения
    уточняю. структура таблицы на которой возникает ошибка
    CREATE TABLE `ZERICH_FOND_2` (
     `id` int(11) NOT NULL auto_increment,
     `s_date` date NOT NULL default '0000-00-00',
     `scha` decimal(18,2) NOT NULL default '0.00',
     PRIMARY KEY  (`id`),
     UNIQUE KEY `DATA` (`s_date`)
    )

    заменяю decimal(18,2) на float  и все работает.
  • Павел Калугин © (14.03.08 13:52) [5]
    с чего оно на decimal(18,2) ругается то?
  • clickmaker © (14.03.08 13:53) [6]

    > с чего оно на decimal(18,2) ругается то?

    это надо в Details >> смотреть
  • Павел Калугин © (14.03.08 13:55) [7]
    смотрю. Вижу фигу (С)
    + $70[527DD889]{adortl100.bpl} ADODB.ADODB.TCustomADODataSet.OpenCursor (Line 3580, "adodb.pas" + 5) + $70
    + $0[51F0A2A1]{rtl100.bpl  } System.System.@CheckAutoResult (Line 18061, "system.pas" + 6) + $0
    + $7[527E5BAD]{adortl100.bpl} ADODB.ADODB.TADODataSet.OpenCursor (Line 6196, "adodb.pas" + 20) + $7
    + $7[5230F049]{dbrtl100.bpl} DB.DB.TDataSet.SetActive (Line 9243, "DB.pas" + 12) + $7
    + $0[51F2AC1E]{rtl100.bpl  } TypInfo.TypInfo.SetOrdProp (Line 1318, "TypInfo.pas" + 27) + $0
    + $6[20EED30A]{designide100.bpl} DesignEditors.DesignEditors.TEnumProperty.SetValue (Line 1402, "DesignEditors.pas" + 5) + $6
    + $16[20EEB99C]{designide100.bpl} DesignEditors.DesignEditors.TPropertyEditor.Edit (Line 671, "DesignEditors.pas" + 11) + $16
    + $5[20C943EA]{coreide100.bpl} PropInsp.PropInsp.TPropertyInspector.PropListEditDblClick (Line 837, "PropInsp.pas" + 20) + $5
    + $A[20FCD681]{vclide100.bpl} IDEInspListBox.IDEInspListBox.TInspListBox.DoEditDblClick (Line 981, "ideinsplistbox.pas" + 2) + $A
    + $6[5203C998]{vcl100.bpl  } Controls.Controls.TWinControl.WndProc (Line 7242, "Controls.pas" + 101) + $6
    + $4[20FCC857]{vclide100.bpl} IDEInspListBox.IDEInspListBox.TPropInspEdit.WndProc (Line 431, "ideinsplistbox.pas" + 7) + $4
    + $0[51F40BB0]{rtl100.bpl  } Classes.Classes.StdWndProc (Line 11572, "classes.pas" + 8) + $0
    + $6A[7E368731]{USER32.dll  } GetDC + $6A
    + $14A[7E368811]{USER32.dll  } GetDC + $14A
    + $122[7E3689C8]{USER32.dll  } GetWindowLongW + $122
    + $A[7E368A0B]{USER32.dll  } DispatchMessageW + $A
  • Johnmen © (14.03.08 13:56) [8]

    > Павел Калугин ©   (14.03.08 13:52) [5]
    > с чего оно на decimal(18,2) ругается то?

    Дело в том, что ADO хочет работать с численным типом, а
    Величины типов DECIMAL и NUMERIC хранятся как строки, а не как двоичные числа с плавающей точкой, ...


    поэтому делай DOUBLE PRECISION.
  • Павел Калугин © (14.03.08 14:31) [9]
    менять структуру полей запретили :(
    остановился на том что селект оттуда нафиг не нужен а инсерт работает :)
  • Johnmen © (14.03.08 14:35) [10]
    Для селекта, если вдруг понадобится, можно завести вычисляемое поле в таблице. Опять же, если они есть в MySQL. Я не помню...
  • Павел Калугин © (14.03.08 14:45) [11]

    > Johnmen ©   (14.03.08 14:35) [10]

    увы, не поможет
     select s_date from ZERICH_FOND_2
    приводит к той же ошибке пока тип данных поля scha не изменишь.
  • sniknik © (14.03.08 14:47) [12]
    > структура таблицы на которой возникает ошибка
    убери "дефаулты", проверь. после читай про правильные форматы.
  • sniknik © (14.03.08 14:51) [13]
    при вставке поля, явно возникает ситуация когда в тип даты к примеру пихается строка (и даже запихивается!), или что там, к чему этот параметр преобразовывается...  в дальнейшем естественно с такой таблицей работать невозможно. любая попытка преобразований, приводит к краху, т.к. на месте числа ахинея...
  • Johnmen © (14.03.08 14:53) [14]

    > Павел Калугин ©   (14.03.08 14:45) [11]

    М-да. Любопытное явление...
  • sniknik © (14.03.08 14:54) [15]
    если создать таблицу даже в таком виде ([4]), и не допускать чтобы сработал дефаулт (всегда вносить все значения), то с таблицей вполне можно работать...
  • Павел Калугин © (14.03.08 15:07) [16]

    > Johnmen ©   (14.03.08 14:53) [14]

    Вот и я про то же..
    На сайте из пхп данные отображены нормально.  
    Смотреть на них смысла особого нету
    Задача из учетной базы переложить кусочек на сайт.
    а так как таблицы с которыми ПХП работает трогать структуру запретили ну и ...
    инсерт работает ну и ладно.
  • Правильный_Вася (14.03.08 15:30) [17]

    > таблицы с которыми ПХП работает трогать структуру запретили

    сделай вьюху с нужным типом
  • Павел Калугин © (14.03.08 18:50) [18]

    > Правильный_Вася   (14.03.08 15:30) [17]

    в кастрате?
 
Конференция "Базы" » Грабли с MySql [D7, MySQL]
Есть новые Нет новых   [134433   +21][b:0][p:0.001]