Использование оператора <>
создаст эти (логические) дубликаты. Вместо этого вы можете решить, какой столбец вы хотите иметь меньший идентификатор и использовать <
или >
соответственно. Например :
SELECT OSFES97.CodeId, OSFBA97.CodeId, OSFES97.ReceiveDate
FROM StockArchives OSFES97
INNER JOIN StockArchives OSFBA97 ON OSFBA97.ReceiveDate = OSFES97.ReceiveDate
WHERE OSFES97.CodeId < OSFBA97.CodeId
-- Here -------------------^
Измените его для чтения:
[downbutton addTarget:self action:@selector(action1:) forControlEvents:UIControlEventTouchUpInside];
я не знаю о Iphone SDK, но цель действия кнопки, вероятно, получает идентификатор (обычно называемый отправитель).
- (void) buttonPress:(id)sender;
В вызове метода, отправитель должен быть кнопкой в Вашем случае, позволив Вам считать свойства, такие как, он - имя, тег, и т.д.
Единственный способ, которым я обнаружено, что для этого установлено значение переменной экземпляра перед вызовом действия
Если вам нужно различать несколько кнопок, вы можете пометить их тегами следующим образом:
[downbutton addTarget:self action:@selector(buttonPress:) forControlEvents:UIControlEventTouchUpInside];
downButton.tag = 15;
Затем в методе делегата действия вы можете обрабатывать каждую кнопку в соответствии с ее ранее установленным тегом :
(void) buttonPress:(id)sender {
NSInteger tid = ((UIControl *) sender).tag;
if (tid == 15) {
// deal with downButton event here ..
}
//...
}
ОБНОВЛЕНИЕ: sender.tag должен быть NSInteger
вместо NSInteger *